2011-10-23 48 views
0

我目前有一個listview,由用戶自行填充。我希望這樣,當用戶離開活動並返回時,用戶添加的所有內容仍在listview中。我一直在閱讀onSaveInstanceState,但我不知道這是否是正確的方式。任何幫助將不勝感激。謝謝。Android - 保存活動狀態和列表查看項目

回答

0

我假設如果用戶正在填充一些數據,那麼該數據有一個商店某處(SQLite,雲等...)。我建議積極存儲用戶輸入的任何內容(即,只要他們點擊「新建」並輸入新的列表項,推送到數據庫和刷新列表)。所以當應用程序onResume()被調用時,您可以從其源代碼獲取數據並重新填充列表視圖。臨時保存到SharedPreferences聽起來很麻煩(對於項目列表)。

0

它不完全是你所需要的; onSaveInstaceState在系統殺死您的活動以回收資源(低內存)之前保存實例,而不是在用戶明確退出時執行。

如果您希望保存活動狀態,以便每當用戶輸入時都保持不變,您必須將數據保存在文件/共享首選項/使用內容提供程序。 如果您只想保存單個listview項目的本地數據,我會推薦使用Shared Preferences,因爲它非常簡單直觀。閱讀關於他們here

0

如果活動在離開和返回之間沒有被破壞,那麼你的數據應該是用戶離開它的地方(除非你在簡歷中做一些重新初始化)。然而,你不能指望這一點,因爲Android可能在需要時釋放資源,而非運行活動可能會成爲此類行爲的受害者。

因此,您應該 - 如前所述 - 將您的數據保存到永久性存儲。如果只是針對這個Activity,並且只有少量的數據,那麼SharedPreferences是一個很好且簡單的解決方案。保存在onPause()中,在onResume()中加載,並且只有在手機死亡時纔會丟失數據。

我不會推薦使用這個文件,但是如果你的數據必須被不同的視圖訪問,處理,排序,過濾等,你可能想要考慮SQLite。