Updating a unique AppWidgetProvider from a Service

by theSmith » Sat, 02 Jan 2010 11:12:47 GMT

Sponsored Links
 Here is my issue, I want to be able to update a specific
AppWidgetProvider (home screen widget) from a custom service class.  I
have to build the remote view in the service because I'm also doing
some networking in there, which takes some time.

The problem is that I can't figure out how to update a specific widget
(individual widgets can have different update intervals, using the
alarm manager).

If I wanted to do it from the onUpdate of the AppWidgetProvider I
could just call appWidgetManager.updateAppWidget(appWidgetId,

Does anyone have any experience with this or any suggestions?



Updating a unique AppWidgetProvider from a Service

by theSmith » Mon, 04 Jan 2010 00:17:57 GMT

 To follow up on my own question, heres how I did it.

I went from a service to an IntentService and in the onHandleIntent
(Intent intent) I handle the update requests.

To get the individual id's I put them as an extra in the intent in the
onRecieve() method in the widget, then fire them off to the
IntentService with context.startService(i).  Everything is working
perfectly now.



Sponsored Links

Updating a unique AppWidgetProvider from a Service

by Lyndon » Thu, 14 Jan 2010 00:54:22 GMT


I have the same problem so thanks very much for the post...

Could you explain how the onHandleIntent method works please.

I have the appWidgetId in the service so I just need the way to update
that specific widget.

Any help would be very much appreciated.



> - Show quoted text -

Updating a unique AppWidgetProvider from a Service

by theSmith » Fri, 15 Jan 2010 06:58:20 GMT

 No problem, heres how I did it.

AppWidgetManager manager = AppWidgetManager.getInstance(this);
RemoteViews views = new RemoteViews(context.getPackageName(),
views.setTextViewText(R.id.TextView_Body, "hello world");
appWidgetManager.updateAppWidget(appWidgetId, views);

onHandleIntent is called every time you use context.startService
(intent);  Just make sure to use that intent to send the appWidgetId
you need updated.  If the IntentService is not already running then
its onCreate() is called, other wise the intent is put into a FIFO
queue.  the onHandleIntent method runs on a seperate thread than the
rest of the app, even the IntentService's onCreate().  This allows you
to do time consuming processes like networking without android giving
the user a ANR dialog.

If you want to probe my brain some more feel free to ask.


> > - Show quoted text -

Other Threads

1. Debugging geolocations services

I wrote some reverse geocoding, geolocation and proximity alert routines for
my little Android app.    I took my Android out with me when running errands
to test my routines; they're kinda hard to test from my couch.  Half of them
didn't work.

What's the best way to debug something like this?  Sprinkle a bunch of
printf statements (or whatever you call them in Java) throughout the app?
Log everything to the sdcard?  Write a toggleable view (is that even
possible?) that acts as a console?



Faber Fedor
Cloud Computing New Jersey


2. How to set an image as WebView's background

Hello every1...
I have 1 webview..It displays text fine..I want an image to be this
text's background..for that I must use <body background="some
now how can i access this 'some image'..i have my background image in
drawable folder..


3. need to know a code location for few functions

4. Error in using push command

5. when JNI_OnLoad() function will get call and by which component will it get call ?

6. Loading dialog

7. Generating MD5 Fingerprint of the SDK Debug Certificate