Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Android: Handler for AsyncTask
- public class UpdateTask extends AsyncTask<Void, Void, Void> {
- private ProgressDialog progressDialog;
- private Handler handler;
- public UpdateTask(Act activity) {
- progressDialog = ProgressDialog.show(Activity.this, "Wait",
- "Wait");
- progressDialog.dismiss();
- handler = new Handler(){
- @Override
- public void handleMessage(Message msg) {
- //run on UI Thread
- switch( msg.what ){
- case MSG:
- progressDialog.show();
- break;
- case DETACH:
- progressDialog.dismiss();
- break;
- }
- }
- };
- }
- void detach() {
- activity=null;
- //problematic
- //progressDialog.dismiss();
- //handler.sendEmptyMessage(DETACH);
- }
- @Override
- protected Void doInBackground(Void... params) {
- handler.sendEmptyMessage(MSG);;
- return null;
- }
- protected void onPostExecute(Void result) {
- if (activity==null) {
- Log.w("RotationAsync", "onPostExecute() skipped -- no activity");
- }
- else {
- //problematic
- // progressDialog.dismiss();
- handler.sendEmptyMessage(MSG);
- progressDialog = null;
- }
- }
- };
- private Handler handler = new Handler(new Handler.Callback() {
- @Override
- public boolean handleMessage(Message msg) {
- switch( msg.what ){
- case MSG:
- progressDialog.show();
- break;
- case DETACH:
- progressDialog.dismiss();
- break;
- }
- return false;
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment