应用更新后小部件消失了

时间:2014-04-17 23:10:04

标签: android widget

更新我的应用后,有时所有旧的小部件都会从主屏幕上消失。 在app启动器/小部件选择器中,我的三个小部件出现两次 - 直到重新启动!

有什么建议吗?

5 个答案:

答案 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

问题解决了。