Android应用程序Widget更新新版本删除了现有的Widget

问题描述 投票:0回答:4

我为Android开发了一个APP + 主屏幕小部件。现在我更新了应用程序(增加了版本代码/名称),但是当我安装时,它不会自动替换屏幕上现有的小部件。它只是说“加载小部件时出现问题”。

有什么想法吗?

android widget
4个回答
8
投票

您是否更改了实现您的小部件的广播接收器的类名称?如果是这样,请不要这样做。


0
投票

当然有相关的用例,主页上加载了一个小部件,然后用户卸载包含该小部件和小部件配置应用程序的应用程序。我想这与必须卸载/安装周期的新版本相同。

发生这种情况时,您所看到的只是主屏幕上类似吐司的框中的“加载小部件时出现问题”。据我所知,小部件没有收到正在卸载程序包的指示,我猜主屏幕 AppWidgetManager 会显示一条默认消息。

操作系统团队的行为没有经过深思熟虑。我建议最好调用小部件的 onDisbled() 和 onDestroy() 方法,并在删除包之前从主屏幕中删除小部件,以便它们可以在需要时进行清理,并且用户(非极客手机用户) )获得干净的体验。

我所能找到的就是只有用户可以从主屏幕上删除小部件的指示,commonsguy 说:以编程方式删除 AppWidgets

我确信我们的开发人员可以处理奇怪的吐司,但对于非技术性的“普通”手机用户来说,这种行为很快就会让他们回到 iPhone。


0
投票

这对我来说是正确的行为。当应用程序再次安装时,它的小部件也应该再次安装。例如,如果有一个新的活动来配置小部件,作为用户,您如何知道它?

从这个角度来看,确实没有办法保证新的小部件能够运行。


0
投票

检查小部件 xml 布局标签是否有错误。就我而言,我有一个重复的布局结束标记,这会阻止小部件视图更新,除非添加小部件。

© www.soinside.com 2019 - 2024. All rights reserved.