Android AppWidget ID';生命周期

Android AppWidget ID';生命周期,android,android-appwidget,reboot,Android,Android Appwidget,Reboot,我有一个带有一些AppWidgets的应用程序。我正在数据库中存储关于每个小部件的一些信息,包括它的appWidgetId——我需要这些信息来正确更新每个小部件。问题是,设备重新启动后,我无法再处理这些appWidgetIds,因为它们似乎改变了它们的值。我怎样才能克服这个问题?提前感谢。每次运行应用程序时,新的appWidgetId都会在R.java中生成,而不是从R.java中存储id。您可以将android中的id:id=“@+id/btn\u add”存储在数据库中。看起来只有在某些设备

我有一个带有一些
AppWidget
s的应用程序。我正在数据库中存储关于每个小部件的一些信息,包括它的
appWidgetId
——我需要这些信息来正确更新每个小部件。问题是,设备重新启动后,我无法再处理这些
appWidgetId
s,因为它们似乎改变了它们的值。我怎样才能克服这个问题?提前感谢。

每次运行应用程序时,新的appWidgetId都会在R.java中生成,而不是从R.java中存储id。您可以将android中的id:id=“@+id/btn\u add”存储在数据库中。

看起来只有在某些设备上,appwidget id会在重新启动时发生更改(由于错误)。看

我查看了Android源代码。appwidget ID确实保存在
/data/system/appwidgets.xml
的文件中。也许你的设备有上面线程中提到的bug


我想不出合适的解决办法。

我认为Dheeraj是对的。我也是Android小部件的开发人员,我也和你一样:我通过记住WidgetId来保存每个小部件的设置。这在我所知道的所有设备上都能完美地工作。在我知道的所有设备上重新启动后,ID不会更改。您确定您的观察结果吗?

为什么需要保留ID?你用它们干什么?粘贴相关代码。@Dheeraj,appWidgetId是数据库表行的键,该行存储从Internet获取信息所需的信息,适用于此单个小部件。你需要看什么样的代码?这有助于解决这个问题吗?@Dheeraj,我的应用程序正在显示不同国家对的汇率。每个小部件都绑定了国家信息,并且有一个自动更新系统,需要这些信息来更新每个小部件。有办法解决这个问题吗?@Dheeraj,谢谢!你可以将你的评论格式化为答案,这样我就可以接受。我不是说按钮的id,我是说AppWidget id。它似乎随机发生了一两次,这让我觉得AppWidgetID在重新启动时不知何故被丢弃了。今天我已经修复了一些数据库问题,可能它们才是真正的问题。@Egor那么您认为有问题的设备实际上是好的,而ID仍然存在?