我为Android开发了一个APP + Home屏幕小部件。现在我更新了应用程序(增加了版本代码/名称),但是当我安装时,它不会自动替换屏幕上的现有小部件。它只是说“问题加载小部件”。
任何想法?
答案 0 :(得分:7)
您是否更改了实施小部件的广播接收器的类名?如果是这样,请不要这样做。
答案 1 :(得分:0)
这对我来说是正确的行为。当应用程序再次安装时,其小部件也应该再次安装。例如,如果有一个新活动来配置小部件,您如何将其视为用户?
实际上,从这个角度来看,确实无法保证新的小部件可以运行。
答案 2 :(得分:0)
当然有相关的用例,主页上加载了一个小部件,然后用户卸载包含小部件和小部件配置应用程序的应用程序。我想这与卸载/安装周期必须的新版本相同。
当发生这种情况时,您看到的只是主屏幕上类似吐司的框中的“加载小工具”。据我所知,小部件没有表明正在卸载软件包,我猜主屏幕AppWidgetManager会抛出一条默认消息。
操作系统团队没有深思熟虑的行为。我建议最好调用小部件的onDisbled()和onDestroy()方法,并在删除软件包之前从主屏幕中删除小部件,以便他们可以根据需要和用户(非极客电话用户)进行整理获得干净的体验。
所有我能找到的是指示只有用户可以从主屏幕中删除小部件,commonsguy说:Removing AppWidgets programmatically
我确信我们的开发人员可以处理奇怪的怪异吐司,但对于非技术性的“普通”手机用户来说,这种行为会让他们很快回到iPhone手机上。