So what are you suggesting? I see in the log that the appwidget is still starting the service and that the service is running. I only seem to have a problem is I install a new APK while the widget is still running. Once that happens, unless I reboot the service won't update the widget.
So is Kostya's suggestion that I document that the widget should be removed from the homescreen (which cleans everything up and shuts everything down) prior to doing the update? Is there something I can do programatically? Many users do an Update All when they are notified of updates prior to reading the changelog! >>>>> "DH" == Dianne Hackborn <[email protected]> writes: DH> Hm, there should be no reason to re-create the widget. All that DH> is needed is an update of the widget, so the launcher gets a new DH> RemoteViews object with the new app version's resources. DH> 2011/2/20 Kostya Vasilyev <[email protected]> >> Oh, and regarding application updates. Resource ids can change with a new >> application version. The launcher (which hosts your widget) in this case >> can >> still refer to the old values and this means it's necessary for the user to >> recreate widgets after an application update. >> >> This makes the question of whether widget ids are stable almost irrelevant >> - they are, but unless you take special measures to ensure that their >> resource references are stable, it does more harm than good. >> >> I usually put this info in the changelog (which is shown to the user with >> each new version), and haven't had any complaints. >> 20.02.2011 19:49 пользователь "Jake Colman" <[email protected]> написал: >> >> >>>>>> "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 >> >> -- >> 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 >> DH> -- DH> Dianne Hackborn DH> Android framework engineer DH> [email protected] DH> Note: please don't send private questions to me, as I don't have time to DH> provide private support, and so won't reply to such e-mails. All such DH> questions should be posted on public forums, where I and others can see and DH> answer them. DH> -- DH> You received this message because you are subscribed to the Google DH> Groups "Android Developers" group. DH> To post to this group, send email to [email protected] DH> To unsubscribe from this group, send email to DH> [email protected] DH> For more options, visit this group at DH> http://groups.google.com/group/android-developers?hl=en -- 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

