hqt

AsyncActivity - AsyncTask

hqt
Dec 26th, 2013
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.88 KB | None | 0 0
  1. package com.hqt.hac.helper.task;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.os.Bundle;
  5. import android.support.v4.app.FragmentActivity;
  6. import android.support.v4.app.FragmentManager;
  7.  
  8. /**
  9.  * A nice technical to solve problem with AsyncTask anc Configuration Change
  10.  * Created by ThaoHQSE60963 on 12/26/13.
  11.  * TODO Need to test carefully
  12.  */
  13. public abstract class AsyncActivity extends FragmentActivity implements ITaskCallback {
  14.  
  15.     HeadlessFragment fragment;
  16.     // this dialog should put in this activity because it associate with activity
  17.     public ProgressDialog dialog;
  18.  
  19.     @Override
  20.     public void onCreate(Bundle savedInstanceState) {
  21.         super.onCreate(savedInstanceState);
  22.     }
  23.  
  24.     /** extends class run this class to start to perform action */
  25.     public void runningLongTask() {
  26.         FragmentManager fragmentManager = getSupportFragmentManager();
  27.         // find fragment is already created or not
  28.         fragment = (HeadlessFragment) fragmentManager
  29.                 .findFragmentByTag(HeadlessFragment.TAG);
  30.  
  31.         // if current task is not started. start it !!!
  32.         if (fragment == null || fragment.isFinish()) {
  33.             fragment = new HeadlessFragment();
  34.             fragmentManager.beginTransaction().add(fragment,
  35.                     HeadlessFragment.TAG).commit();
  36.         }
  37.     }
  38.  
  39.     @Override
  40.     protected void onSaveInstanceState(Bundle outState) {
  41.         super.onSaveInstanceState(outState);
  42.     }
  43.  
  44.     /** stimulate as using AsyncTask */
  45.     public void publishProgress(int progress) {
  46.         fragment.publishProgressToUI(progress);
  47.     }
  48.  
  49. }
  50.  
  51. /** interface stimulate AsyncTask. Use this interface for Callback method */
  52. interface ITaskCallback {
  53.     void onPreExecute();
  54.     Integer doInBackground();
  55.     void onProgressUpdate(Integer... values);
  56.     void onCancel();
  57.     void onPostExecute(int status);
  58. }
Advertisement
Add Comment
Please, Sign In to add comment