以编程方式删除AppWidgets

Mel*_*var 15 android android-appwidget

我正在努力想出如何以编程方式删除主屏幕AppWidget(即用户实际上没有将其拖入垃圾箱).例如,考虑一个可以拥有多个帐户的应用,每个帐户都有任意数量的小部件 - 一旦删除帐户,小部件也应该被删除.

我试过从http://www.netmite.com/android/mydroid/cupcake/frameworks/base/services/java/com/android/server/AppWidgetService.java上看一个不起眼的例子,但似乎没有甚至触发OnDeleted,更不用说从主屏幕上删除AppWidget了.

Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_DELETED);
intent.setComponent(info.componentName); // references AppWidgetProvider's class
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);
sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)

有没有人对如何实现这一点有任何建议?一个例子是蜜蜂的膝盖.谢谢.

Com*_*are 27

您无法在主屏幕中添加或删除应用小部件.只有用户才能这样做.

任何绑定到已删除帐户的应用小部件都可以显示不同的帐户,或采用一些"(已删除帐号)"外观,这会触发用户摆脱应用小部件或重新配置它.

  • @ErKimmiDhingra:您指的是 [应用小部件配置活动](http://developer.android.com/guide/topics/appwidgets/index.html#Configuring)。如果用户退出该活动,系统首先不会添加应用小部件。应用程序小部件的开发人员不会删除任何内容。 (2认同)