Reputation: 612
I have a background service that can be configured to perform some action every x minutes. I want to implement a widget that gets updated every time my service performs that action. However, I can't get the onUpdate method of my AppWidgetProvider called in any way, except when adding a widget to the homescreen.
I tried sending APPWIDGET_UPDATE intents but onUpdate did not get called although the AppWidgetProvider did receive the intent since the onReceive method was called. Is there any way I can trigger widget updates from a service?
Upvotes: 14
Views: 11883
Reputation: 1007624
Just make yourself a RemoteViews
and update the widget(s) directly in the Service
. You'll get your AppWidgetManager
via:
AppWidgetManager mgr=AppWidgetManager.getInstance(this);
Everything else is as normal.
Note:- If you really want to force the existing AppWidgetProvider
to do the work, send a broadcast with a custom action to your component, and call onUpdate()
yourself from onReceive()
when you get it.
Upvotes: 19