>>>>> "MM" == Mark Murphy <[email protected]> writes:

   MM> On Fri, Feb 18, 2011 at 12:44 PM, Jake Colman <[email protected]> wrote:

   >> My service no longer updates the widget and the widget's data area
   >> remains blank.  This indicates (at least to me but I'm still
   >> learning) that either the widget is not getting its notification
   >> to start the service or the service is ignoring its start method.

   MM> I'd add some logging or breakpoints. Depending on how you are
   MM> using AppWidgetManager from your service, it's also possible that
   MM> the service is running but just not updating the app widget
   MM> (e.g., you're using the ID-based app widget update and the ID
   MM> changed).

   >> So could it be that the notifications are "confused" between old
   >> and new instances of the widget?

   MM> That is decidedly possible. I haven't played around with
   MM> supporting multiple app widgets much, so I have no idea how
   MM> stable those app widget IDs are.

   MM> If this is for your sunrise app widget from your other thread,
   MM> unless you are supporting monitoring sunrise from multiple
   MM> geographic locations, I would not worry about supporting multiple
   MM> app widgets.  Use the updateAppWidgets() that just takes a
   MM> ComponentName and update the lot of 'em in one shot.

So we have already discussed that we are talking about my sunrise
widget, that we have only a single widget instance, and that my code, in
any event, would have updated all instances.

I have also confirmed that the widget is still receiving notification
broadcasts and starting the service accordingly, and that the service is
getting started.  The "only" issue is that the widget is not painting an
update!

So what about a UID mismatch?  The docs say that the service can only
update the RemoteViews if the UID of the appwidget and the service are
the same.  Can the UID change if I download a new version of the APK
while the app is still installed on my homescreen?  If that happened, it
might explain why the widget remains blank - the service has a different
UID so it canot update the widget.  If so, when the widget is disabled
and the services are stopped why wouldn't that clean things up?  It
seems that once I am in this state, I have to kill the emulator and
start a new one.  Furthermore, if this is, indeed the problem, how I
protect against it.  I suppose I can tell the user to be sure to delete
the widget from the homescreen prior to updating but that is not a very
satisfactory solution.

Thanks!

-- 
Jake Colman -- Android Tinkerer

-- 
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

Reply via email to