Kostya, at first sight, that helped! Thanks a lot for pointing me that out!
Greetz.. Dirk On 29 mei, 11:04, Kostya Vasilyev <[email protected]> wrote: > Dirk, > > This is the reason your widget sometimes stops responding to clicking. > > Each and every RemoteViews update needs to specify complete state, > including data and PendingIntents (if any). The home screen process can > be bumped out of memory, and Android uses the most recent RemoteViews to > recreate widgets. If it's incomplete and only contains text updates, > then pending intents will be lost. > > Same thing happens on orientation changes - there is no onUpdate(), just > the mechanism described above. > > -- Kostya > > 2010/5/29 Dirk Vranckaert <[email protected]> > > > > > I think String is right about that. I wouldn't do that either just to > > save battery life! > > > However I think it is better to set the update interval of the applet > > to a high enough amount of time (like 24 hours or sth) and just update > > the widget manually. I'm currently working on a widget to and in my > > case the widget only receives an update upon clicking a certain > > button. > > > The way I do that is like this: > > > RemoteViews rv = new RemoteViews(context.getPackageName(), WIDGET); > > rv.setTextViewText(R.id.textField, "Updated value for some text on the > > widget"); > > ComponentName cn = new ComponentName(context, YourActivity.class); > > AppWidgetManager mgr = AppWidgetManager.getInstance(context); > > mgr.updateAppWidget(cn, rv); > > > That should basically work to update a widget. > > Oh and one tip: using the this method you should do all updating just > > after the line "rv.setTextViewText(...)". If you execute this entire > > block a few times after each other you can get into troubles when > > updating the widget. > > > Dirk > > > On 28 mei, 23:40, String <[email protected]> wrote: > > > Before you get too far into this, you need to be aware that the widget > > > architecture isn't designed to update that frequently. There's a lot > > > of overhead, and updating every ten seconds will seriously impact > > > battery life. As will having a service continually running in the > > > background, for that matter. > > > > It's a cool idea but I'm not sure it's well suited for a widget, > > > unfortunately. > > > > String > > > > On May 28, 2:43 pm, "[email protected]" <[email protected]> wrote: > > > > > I am currently learning about widgets in Android. > > > > > I want to create a WIFI widget that will display the SSID, the RSSI > > > > (Signal) level. > > > > > But I also want to be able to send it data from a service I am running > > > > that calculates the Quality of Sound over wifi. > > > > > Here is what I have after some reading and a quick tutorial: > > > > > --- > > > > > public class WlanWidget extends AppWidgetProvider{ > > > > > RemoteViews remoteViews; > > > > AppWidgetManager appWidgetManager; > > > > ComponentName thisWidget; > > > > WifiManager wifiManager; > > > > > public void onUpdate(Context context, AppWidgetManager > > > > appWidgetManager, > > > > int[] appWidgetIds) { > > > > Timer timer = new Timer(); > > > > timer.scheduleAtFixedRate(new > > WlanTimer(context, appWidgetManager), > > > > 1, 10000); > > > > > } > > > > > private class WlanTimer extends TimerTask{ > > > > > RemoteViews remoteViews; > > > > AppWidgetManager appWidgetManager; > > > > ComponentName thisWidget; > > > > > public WlanTimer(Context context, AppWidgetManager > > appWidgetManager) > > > > { > > > > > this.appWidgetManager = appWidgetManager; > > > > remoteViews = new > > RemoteViews(context.getPackageName(), > > > > R.layout.widget); > > > > thisWidget = new ComponentName(context, > > WlanWidget.class); > > > > wifiManager = > > > > (WifiManager)context.getSystemService(Context.WIFI_SERVICE); > > > > > } > > > > > @Override > > > > public void run() { > > > remoteViews.setTextViewText(R.id.widget_textview, > > > > wifiManager.getConnectionInfo().getSSID()); > > > > appWidgetManager.updateAppWidget(thisWidget, > > remoteViews); > > > > } > > > > > } > > > > > --- > > > > > The above seems to work ok, it updates the SSID on the widget every 10 > > > > seconds. > > > > > However what is the most efficent way to get the information from my > > > > service that will be already running to update periodically on my > > > > widget? > > > > > Also is there a better approach to updating the the widget rather than > > > > using a timer and timertask? (Avoid polling) > > > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to [email protected] > > To unsubscribe from this group, send email to > > [email protected]<android-developers%2Bunsubs > > [email protected]> > > For more options, visit this group at > >http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

