I believe only the same application can push updates to a widget. I know I wouldn't want other apps to be able to send updates to my widget directly.
The proper approach would be to handle it with your AppWidgetProvider subclass (remember this is simply a BroadcastReceiver with some help for widget-specific events). Register it for a "com.whatever.CALENDAR_UPDATE" event, and allow other apps/services/ whoever post requests to add/change/remove calendar events. Your widget provider class can then do any security or sanity checks on the request before posting the update to the on-screen widget itself. Blake On Jun 28, 8:05 pm, Aaron <arro...@gmail.com> wrote: > Is there a way to push an update to a widget from another activity? > It seems like in order to use the AppWidgetManager.updateAppWidget > method, it has to be within the widget code itself? Can i push an > update to the widget from the app personally? I tried this and it > didn't do anything > > // Push update for this widget to the home screen > ComponentName thisWidget = new ComponentName(this, > WordWidget.class); > AppWidgetManager manager = AppWidgetManager.getInstance > (this); > manager.updateAppWidget(thisWidget, updateViews); > > For example, if I have a calendar app that has a calendar widget..how > do i push changes to the widget if I update an event on the calendar? > I have been looking at the calendar and calendar widget code but I > have yet to figure out how to do this. > > Thanks. > > On Jun 8, 12:14 am, Teo <teomina...@gmail.com> wrote: > > > I've got a related question (or i'm not getting this right). The way i > > see it, onReceive can be used to handle interface events, but what > > pending intent do i need to attach to a button so that onReceive can > > be triggered? > > > Thanks, > > Teo > > > On Apr 23, 1:05 am, Al <alcapw...@googlemail.com> wrote: > > > > That worked, thanks. > > > > On Apr 22, 7:36 pm, Tom Gibara <m...@tomgibara.com> wrote: > > > > > That's true, but notice that his service has no dependency on the class > > > > implementing the onUpdatemethod, in principal anything in the > > > > application > > > > could invoke that service. You'll find the appwidgetids available via > > > > the > > > > getAppWidgetIds() on AppWidgetManager. > > > > Tom. > > > > > 2009/4/22 Al <alcapw...@googlemail.com> > > > > > > In Jeff's example, the service is started from his onUpdatemethod, > > > > > which is called by AppWidgetProvider. This is different from what I'd > > > > > like to do, I'd like topushan update to thewidgetfrom inside my > > > > > activity, but with the correct int[] values. > > > > > > On Apr 22, 7:16 pm, Tom Gibara <m...@tomgibara.com> wrote: > > > > > > Yes, you canpushupdatesto your widgets any time by obtaining an > > > > > > AppWidgetManager. > > > > > > Jeff Sharkey posted an example that performs an update within a > > > > > > Service. > > > > > It > > > > > > includes this code that might help. > > > > > > > //Pushupdate for thiswidgetto the home screen > > > > > > ComponentName thisWidget = new ComponentName(this, > > > > > > WordWidget.class); > > > > > > AppWidgetManager manager = > > > > > AppWidgetManager.getInstance(this); > > > > > > manager.updateAppWidget(thisWidget, updateViews); > > > > > > > The relevant methods you are looking for are on the AppWidgetManager > > > > > class. > > > > > > In this case everywidgetis being updated in the same way so this > > > > > > code > > > > > > takes advantage of the updateAppWidgetmethod(which doesn't take an > > > > > array > > > > > > of ids, butupdatesallwidgetinstances identically). > > > > > > > Jeff's blog post is at: > > > > > > >http://android-developers.blogspot.com/2009/04/introducing-home-scree... > > > > > > > Tom. > > > > > > > 2009/4/22 Al <alcapw...@googlemail.com> > > > > > > > > Depending on what I do in my application, I might want to force an > > > > > > > update on mywidget. I've have had a poke around and can't seem to > > > > > > > find any API for doing a manual update. At the moment, I have a > > > > > > > function that sends a broadcast and my onReceive does this: > > > > > > > > �...@override > > > > > > > public void onReceive(Context context, Intent intent) { > > > > > > > > String action = intent.getAction(); > > > > > > > > if (action != null && > > > > > > > action.equals(UPDATE_ACTION)) { > > > > > > > //internal > > > > > > > static string > > > > > > > onUpdate(context, > > > > > > > AppWidgetManager.getInstance(context), new int[] > > > > > > > { 0 }); > > > > > > > } > > > > > > > > else { > > > > > > > super.onReceive(context, intent); > > > > > > > } > > > > > > > } > > > > > > > > Is there a proper way to do this, which sents the int array to the > > > > > > > correct values? Or do I have to do it like this instead? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---