AppWidget ID的生命周期

时间:2012-03-19 14:22:26

标签: android android-appwidget reboot

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

3 个答案:

答案 0 :(得分:4)

看起来只有某些设备上的appwidget ID会在重启时发生变化(由于错误)。请参阅this thread

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

我无法想到合适的解决方法。

答案 1 :(得分:1)

我认为Dheeraj是对的。我也是Android Widgets的开发人员并且做同样的事情:我通过记住WidgetId来保存每个小部件的设置。这在我认识的所有设备上完美运行。在我知道的所有设备上重新启动后,ID不会更改。你确定你的意见吗?

答案 2 :(得分:-1)

每次运行应用程序而不是存储来自R.java的id时,新的appWidgetId都会在R.java中生成,你可以在你的数据库中存储来自android:id =“@ + id / btn_add”的id。