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
Post a Comment