2011-06-26 36 views
7

在我的小部件类扩展扩展AppWidgetProvider我有一些静态最后ArrayLists包含数据。我的Widget中有一些按钮,当按下时导致onReceive在类中被调用。我注意到有时ArrayList会在onReceive运行时丢失它们的值(为空),但大部分时间它们都有预期的数据。Android小工具生命周期

ArrayList是否可以安全地在此上下文中使用?是否有任何小部件生命周期事件会导致列表重新实例化。我发现很难找到有关Widget生命周期事件的任何文档。

回答

11

在这种情况下ArrayList安全吗?

否。如果没有其他应用程序正在运行,则您的进程可能会在onUpdate()调用之间终止。

是否有任何小部件生命周期事件会导致列表重新实例化。

您的流程已终止。

我发现很难找到有关Widget生命周期事件的任何文档。

这是因为没有您想要的方式的生命周期。

一个AppWidgetProvider是一个清单登记BroadcastReceiver。清单登记的BroadcastReceiver只会在拨打onReceive()时生效。 生活在该范围之外的东西(例如静态数据成员)将是可靠的。

请将您的信息存储在文件或数据库中。

+1

如果我的进程已终止,然后由系统重新启动 - 重新启动进程后是否再次调用onUpdate()? – user1492955