在Android中,如何在应用程序被卸载时删除小部件?

7

可能重复:
卸载应用程序后从主屏幕中删除小部件

在Android中,我为我的应用程序创建了一个小部件。当我卸载该应用程序时,主屏幕上的小部件显示“加载小部件时出现问题”错误。我需要一种场景,在这种情况下,开发人员应通过代码(而不是通过拖放到垃圾桶中)删除小部件,以便在卸载应用程序时小部件也被删除。是否有可能?如果可以,我们需要做哪些更改?是否可以在清单中设置任何内容,以使其在卸载应用程序后删除应用程序的所有引用?


关于这个主题有什么新消息吗? :) - Tamotsukun
2个回答

5

在您的应用程序被卸载时,无法进行控制。我认为Android 2.2可能会更好地自动摆脱您的应用程序小部件。


我的小部件在卸载应用程序后无法被删除吗?难道操作系统不能处理这个问题吗? - Janusz
@Janusz:“难道不应该由操作系统处理吗?”——是的,这就是为什么我写道“我认为Android 2.2可能会更好地自动清除您的应用程序小部件。” - CommonsWare
很遗憾,它并没有。3.0版本中有关于小部件的改进已经宣布,也许我们需要等到那时候。 - Janusz

0

嗨! 当您删除应用程序小部件主机管理器时,应广播以下意图之一... ACTION_APPWIDGET_UPDATE ACTION_APPWIDGET_DELETED ACTION_APPWIDGET_ENABLED ACTION_APPWIDGET_DISABLED

为了利用这个功能,在您的appwidget提供程序类(或您的自定义扩展广播接收器)中接收广播(或在appwidgetprovider类中使用onDeleted()),并从应用程序小部件主机管理器中删除具有您小部件ID的小部件....

希望这可以帮助到您...


你实际尝试过这个吗?当应用被删除时,你列出的消息并不会发送。具体来说,在AppWidgetProvider中的onDeleted()只有在小部件被移除时才会被调用,而不是整个应用程序。 - Carl Whalley
嗨,卡尔,是的,我试过了。此外,我在我的评论中使用了Android开发者网站作为参考。由于已经过去了将近一年,我会再次尝试它。我会告诉你的。 - Andrew Carr
如果未安装应用程序,则不会发送任何广播。具体来说,当从主屏幕中删除小部件时,将发送ACTION_APPWIDGET_DELETED - sschuberth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接