Guest User

Untitled

a guest
Aug 8th, 2012
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. Android: Handler for AsyncTask
  2. public class UpdateTask extends AsyncTask<Void, Void, Void> {
  3. private ProgressDialog progressDialog;
  4. private Handler handler;
  5.  
  6. public UpdateTask(Act activity) {
  7.  
  8. progressDialog = ProgressDialog.show(Activity.this, "Wait",
  9. "Wait");
  10. progressDialog.dismiss();
  11.  
  12. handler = new Handler(){
  13. @Override
  14. public void handleMessage(Message msg) {
  15. //run on UI Thread
  16. switch( msg.what ){
  17. case MSG:
  18. progressDialog.show();
  19. break;
  20. case DETACH:
  21. progressDialog.dismiss();
  22. break;
  23. }
  24. }
  25. };
  26.  
  27. }
  28.  
  29.  
  30. void detach() {
  31. activity=null;
  32. //problematic
  33. //progressDialog.dismiss();
  34. //handler.sendEmptyMessage(DETACH);
  35. }
  36.  
  37.  
  38.  
  39.  
  40. @Override
  41. protected Void doInBackground(Void... params) {
  42. handler.sendEmptyMessage(MSG);;
  43. return null;
  44. }
  45.  
  46. protected void onPostExecute(Void result) {
  47. if (activity==null) {
  48. Log.w("RotationAsync", "onPostExecute() skipped -- no activity");
  49. }
  50. else {
  51. //problematic
  52. // progressDialog.dismiss();
  53. handler.sendEmptyMessage(MSG);
  54. progressDialog = null;
  55. }
  56. }
  57.  
  58. };
  59.  
  60. private Handler handler = new Handler(new Handler.Callback() {
  61. @Override
  62. public boolean handleMessage(Message msg) {
  63.  
  64. switch( msg.what ){
  65. case MSG:
  66. progressDialog.show();
  67. break;
  68. case DETACH:
  69. progressDialog.dismiss();
  70. break;
  71. }
  72.  
  73. return false;
  74. }
  75. });
Advertisement
Add Comment
Please, Sign In to add comment