更新我的应用后,有时所有旧的小部件都会从主屏幕上消失。 在app启动器/小部件选择器中,我的三个小部件出现两次 - 直到重新启动!
有什么建议吗?
答案 0 :(得分:1)
On this page有一篇长篇文章谈论这个问题。
问题的核心似乎是:
重要的是我们将自己的密钥用于小部件更新 动作,如果我们使用AppWidgetManager.EXTRA_WIDGET_IDS,我们不仅会 打破我们自己的小部件,但也打破其他小部件。
不幸的是,我的代码不受此问题的影响,但我仍然有用户报告此问题。 还找到this report
答案 1 :(得分:0)
将S4升级到android lollipop后,我的小工具消失了。意外发现如果你双击左软键,屏幕底部会出现一个小部件图标。点击图标打开小部件,它们都是!
答案 2 :(得分:0)
这是一个操作系统错误,因为它更新应用程序的方式,使它们在相当长的一段时间内不可用。如果启动程序在此期间更新了小部件,它可能会解除它们,除非它实现了特定的解决方法以避免这种情况。
请盯着这里的问题,以便(也许)Google考虑修复它:https://code.google.com/p/android/issues/detail?id=188137
答案 3 :(得分:0)
如果您更改了小部件的确切包路径,该小部件将中断升级并且小部件将在升级时消失
答案 4 :(得分:0)
This question give us a solution.
我们正在使用MvvmCross实现Xamarin.Android项目。该项目使用小部件,并且在应用程序更新时小部件消失了。链接中提到的问题为我们提供了找到解决方案的途径,我们使用APK-Analyzer分析了旧APK和新APK之间的差异,并且通过查看AndroidManifiedt.xml文件,我们发现所使用的AppWidgetProvider具有不同的解决方案包裹名字。通过搜索更多内容,我们发现了release note from Microsoft 上面写着:
此版本中生成的Java类型的名称不同。任何明确使用以md5开头的旧名称之一的项目都将需要手动更新以解决此更改。有关更多详细信息,请参见下面的对生成的Java类型名称的重大更改。
并通过替换以下内容来定义常量名称:
[BroadcastReceiver(Label = "Widget Title")]
public class CustomProvider : AppWidgetProvider
到
[BroadcastReceiver(Label = "Widget Title", Name = "<old package name>.CustomProvider")]
public class CustomProvider : AppWidgetProvider
问题解决了。