multithreading - Updating UI on Android Widget -


i have widget button , progress bar. basically, when button pressed progress bar starts fill up. has been relatively simple - seems lag progress bar fills up. i've got running in separate thread, still - whole systems seems take strain.

here's setup:

pdateprogressbar = new runnable() {          @override         public void run() {             if (panicstatus) {                 // start progress bar                 // @ end ( < 100)                 progress += 0.33f;                 remoteviews.setprogressbar(r.id.widgetprogress, 100, (int)progress, false);                  // update ui                 thiswidget = new componentname(main, widgetprovider.class);                 appwidgetmanager manager = appwidgetmanager.getinstance(main);                 manager.updateappwidget(thiswidget, remoteviews);                  if (progress < 100) {                     mhandler.postdelayed(this, 10);                 } else {                     mhandler.removecallbacks(updateprogressbar);                     mhandler = null;                 }             } else {                 mhandler.removecallbacks(this);                 mhandler = null;             }         }      };      runnable update = new runnable() {          @override         public void run() {             if (panicstatus) {                 looper.prepare();                 log.d("widget", "creating new handler...");                 mhandler = new handler();                  log.d("widget", "starting runnable updateprogressbar");                 mhandler.postdelayed(updateprogressbar, 10);                 looper.loop();              }         }     };       if (!panicstatus) {         // panic pressed, allow time cancel         log.d("widget", "panic");         remoteviews.settextviewtext(r.id.widget_panic_button, "cancel");         panicstatus = true;         progress = 0;             // start new handler         // update progress bar          new thread(update).start();       } else {         // cancel pressed, cancel pending panic         log.d("widget", "cancel");         remoteviews.settextviewtext(r.id.widget_panic_button, "panic");         panicstatus = false;         progress = 0;         remoteviews.setprogressbar(r.id.widgetprogress, 100, 0, false);     } 

any ideas how can going smoothly?

thanks


Comments

Popular posts from this blog

Change php variable from jquery value using ajax (same page) -

Pull out data related to my apps from Android Play Store and iOS App Store -

How can I fetch data from a web server in an android application? -