android - 如何避免旧的小部件在主要代码返工期间失败/消失?

标签 android android-appwidget

我在市场上有一个支持小部件的应用程序。我对应用程序进行了一些重大更改,重新设计了很多内部结构,替换/重命名 Activity 等。其他更改包括从不同的共享首选项键获取小部件配置数据,尽管我已经编写了转换代码来处理迁移.从新安装时,该应用程序可以按我希望的方式运行,包括小部件。但是,我现在正在测试从应用程序的旧版本升级到新版本(通过模拟器)。我看到一些奇怪的行为。有一次,该小部件在首次启动时显示正常,但在单击时尝试启动旧 Activity 而不是我编写的新 Activity 。所以第一个问题是,为什么小部件没有更新到应用安装时的新代码?

我测试升级的其余尝试导致现有小部件在新版本安装中完全消失。是什么原因造成的? log-cat 日志中没有任何值得注意的内容。有什么建议吗?

最佳答案

... replacing/renaming activities ...

这是你的问题。如果您重命名一个 AppWidget 接收器,它将消失。唯一的解决办法是不重命名它。

类似于可以固定到主屏幕的 Activity 。如果您重命名 Activity ,主屏幕图标将会消失。

在这里阅读更多相关信息:Android Developers Blog: Things That Cannot Change

关于android - 如何避免旧的小部件在主要代码返工期间失败/消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13078279/

相关文章:

android - 适用于 Android O 的 DeviceAdminReceiver

javascript - Instagram 链接打开应用程序内浏览器而不是外部/ native 浏览器

android - Activity/服务和小部件提供者之间的通信?

android - WebView setDefaultZoom 弃用

java - Android Dialog如何从自定义适配器Dialog适配器获取文本

android - 没有数据时如何为应用程序小部件设置默认文本?

android - 在android中点击更新应用程序小部件

android - 使用自定义字体创建数字时钟小部件

java - 使用支持库自动调整主屏幕小部件中的文本大小

android - onSaveInstanceState 使我的应用程序崩溃