Hi Jeff, Thanks for the quick reply, I get the idea of allowing the widget to be installed on different home screen app, so should it be he widget host's responsibility to enforce the singleton if necessary then?
I will try to read thru the launcher code, just spot one thing though, should the startIntentForResult in step 3 be startActivityForResult instead? I am sure I will have more questions as I move along, but thanks again for your help! Cheers, Bryan On Jun 4, 10:58 am, Jeff Sharkey <[email protected]> wrote: > > actually add multiple instance of the same widget to the home screen, > > is there a way to prevent this? > > You probably don't want to enforce a limit like this, because your > widget might be installed on several home screen apps. Also, you can > delete widgets by long pressing on them and dragging to the delete > tab. > > > Also I am looking into buliding my own app widget container, not a > > home screen replacement, just a container that can host other widgets, > > I read the appwidgethost api doc, is there any sample code or guide on > > how to use the appwidgethost api, thanks a lot! > > The Launcher source code is available, but it can be a little > confusing. From a high level: > > 1. Start listening for widget updates using AppWidgetHost.startListening() > 2. Allocate an appWidgetId using AppWidgetHost.allocateAppWidgetId() > 3. Launch AppWidgetManager.ACTION_APPWIDGET_PICK using > startIntentForResult(), sending along the allocated ID and any > additional details in the extras. This will show a dialog to the > user, allowing them to pick which widget they want bound to the > appWidgetId you just allocated. > 4. When the user is finished, use resultCode to determine if the > binding was successful. > 5. Use AppWidgetManager.getAppWidgetInfo() to find details for the > newly-bound widget, including its layout dimensions and any > configuration activity. > 6. Launch the configuration activity for the widget, if they provided one. > 7. Use the AppWidgetHost.createView() helper to create an > AppWidgetHostView that contains the inflated widget, and insert into > your on-screen layout. > 8. When user deletes the widget, call > AppWidgetHost.deleteAppWidgetId() so the system can clean up > resources. > > A few of those steps may be slightly out of order, it's been awhile > since I've dug into this code. Hopefully this helps. > > -- > Jeff Sharkey > [email protected] --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---

