2011-06-26 40 views
7

在我的小部件類擴展擴展AppWidgetProvider我有一些靜態最後ArrayLists包含數據。我的Widget中有一些按鈕,當按下時導致onReceive在類中被調用。我注意到有時ArrayList會在onReceive運行時丟失它們的值(爲空),但大部分時間它們都有預期的數據。Android小工具生命週期

ArrayList是否可以安全地在此上下文中使用?是否有任何小部件生命週期事件會導致列表重新實例化。我發現很難找到有關Widget生命週期事件的任何文檔。

回答

11

在這種情況下ArrayList安全嗎?

否。如果沒有其他應用程序正在運行,則您的進程可能會在onUpdate()調用之間終止。

是否有任何小部件生命週期事件會導致列表重新實例化。

您的流程已終止。

我發現很難找到有關Widget生命週期事件的任何文檔。

這是因爲沒有您想要的方式的生命週期。

一個AppWidgetProvider是一個清單登記BroadcastReceiver。清單登記的BroadcastReceiver只會在撥打onReceive()時生效。 生活在該範圍之外的東西(例如靜態數據成員)將是可靠的。

請將您的信息存儲在文件或數據庫中。

+1

如果我的進程已終止,然後由系統重新啓動 - 重新啓動進程後是否再次調用onUpdate()? – user1492955