2010-06-17 47 views
3

我正在使用靜態數組和HashMaps在我的AppWidgetProvider類中存儲一些值。但是當進程死亡時它們變爲空,所以小部件不再工作。有沒有其他方法可以使用靜態成員來爲Android中的AppWidgetProvider存儲數據?Android中靜態變量的替代方案

+1

使用成員變量和數據存儲在物理存儲時,進程關閉補嗎? – 2010-06-17 18:41:04

+0

我將如何知道流程何時關閉?另外,當您說物理存儲時,您的意思是ContentProviders嗎? – Mocha 2010-06-17 18:52:39

回答

2

「正確」的方式做你正在做什麼(我相信)是SharedPreferences。 Android開發指南在Data Storage in Android的不同方法上有很好的一頁。另外,儘量不要使用太多的靜態值;也許你正在做的事情會更好地用singleton類來完成,但是,從這個問題來看,很難說出你正在使用它們。

0

您是否簽出了打字數組資源?

Resource Types in the Android Dev Guide

+0

不幸的是,TypedArray不允許在運行時存儲值,這正是我正在尋找的。 – Mocha 2010-06-17 19:21:39

+0

有沒有其他想法? – Mocha 2010-06-17 21:24:22

+0

如果你需要存儲少量的數據,我會使用SharedPreferences,在應用程序的上下文中運行的任何東西都將能夠訪問選定的信息...如果你需要更多的存儲,那麼,我會看看使用Sqlite數據庫並將您的信息存儲在表格中,但這可能是重量級的。通過使用SharedPreferences,您可以存儲一個衆所周知的格式化字符串,或者可以存儲與JSONObject/JSONArray等效的字符串,然後您可以使用JSONObject/JSONArray對象將數據解析迴應用程序以供應用程序使用。 – mmaitlen 2010-06-17 21:32:42

-1

你可以寫一個對象到一個文件類.DEFINE,並在運行時使用objectwriter所需的值,將其保存