Android Widget : progressbar not visible -


am trying show indeterminate progress bar in app widget 2 seconds (as indication data being refreshed). widget not showing up. tried using handler.postdelayed, , thread.sleep. both methods didn't work. widget not showing up.

in widget layout

    <progressbar         style="?android:attr/progressbarstylelargeinverse"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:id="@+id/widget_progress_bar"         android:layout_centerinparent="true"         android:indeterminate="false" /> 

i tried stylehorizontal bar style.

in appwidgetprovider class

am calling @ beginning on updateappwidget() method:

method 1 : new thread

 public static void updateappwidget(context context, appwidgetmanager appwidgetmanager, int appwidgetid) {           final remoteviews widgetview = new remoteviews(context.getpackagename(), r.layout.widget_wifi_info_basic);                   new thread(new runnable() {             int progress = 0;             handler progresshandler = new handler();             public void run() {                 long timerend = system.currenttimemillis() + 3 * 1000;                  while (timerend >  system.currenttimemillis() ) {                      progress = (int) (timerend - system.currenttimemillis()) / 300;                     // update progress bar                     progresshandler.post(new runnable() {                         public void run() {                             widgetview.setprogressbar(r.id.widget_progress_bar,3000,progress,false);                             log.d("tag", "progress=" +progress);                         }                     });                     try {                         thread.sleep(300);                     } catch (interruptedexception e) {                         log.w("tag","progress thread cannot sleep");                     }                 }             }         }).start();         ...         ...   } 

method 2 : countdowntimer (again inside same method)

widgetview.setviewvisibility(r.id.widget_progress_bar,view.visible);         new countdowntimer(2000, 100) {             @override             public void ontick(long millisuntilfinished) {                 //this done every 1000 milliseconds ( 1 seconds )                 int progress = (2000 - (int)millisuntilfinished) / 100;                 widgetview.setprogressbar(r.id.widget_progress_bar,2000,progress,false);                 log.d(constants.app_name, "progress=" +progress);             }              @override             public void onfinish() {                 //the progressbar invisible after 2 seconds       widgetview.setviewvisibility(r.id.widget_progress_bar,view.invisible);             }          }.start(); 

method 3 : tried indeterminate progress bar ; thread sleeping

        // sleep few seconds         try {             // show progress bar             widgetview.setviewvisibility(r.id.widget_progress_bar, view.visible);             thread.sleep(3000);         } catch (interruptedexception e) {             log.w("tag","progress thread cannot sleep");         }         // hide progress bar         widgetview.setviewvisibility(r.id.widget_progress_bar, view.invisible); 

surprising log message (for printing progress) never gets printed!?

create separate thread progress bar , run 2 seconds.


Comments