簡體   English   中英

Android-保存活動狀態並列出視圖項

[英]Android - save activity state and list view items

我目前有一個由用戶自行填充的listview 我想要這樣,以便當用戶離開活動並返回時,用戶添加的所有內容仍在listview 我一直在閱讀有關onSaveInstanceState的信息,但我不知道這是否是正確的方法。 任何幫助將不勝感激。 謝謝。

它不是您所需要的; onSaveInstaceState在系統終止您的活動以回收資源(低內存)之前(而不是在用戶明確退出它的情況下)保存實例。

如果您要保存活動狀態而浪費時間,那么無論何時用戶輸入活動狀態都將保持不變,則必須將數據保存在文件/共享首選項/使用內容提供程序上。 如果您要做的只是保存單個列表視圖項的本地數據,我建議您使用“共享首選項”,因為它非常簡單直觀。 在這里閱讀有關它們的信息

我假設如果用戶正在填充一些數據,那么該數據在某處(SQLite,雲等)有存儲。 我建議積極存儲用戶輸入的所有內容(即,一旦他們單擊“新建”並輸入新的列表項,則推送到數據庫並刷新列表)。 因此,當調用應用程序onResume()時,您可以從源中獲取數據並重新填充列表視圖。 臨時保存到SharedPreferences中聽起來很麻煩(對於項目列表)。

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

因此,您應該-如前所述-將數據保存到持久性存儲中。 如果僅用於此活動,並且僅包含少量數據,則SharedPreferences是一個很好的解決方案。 保存在onPause()中,加載在onResume()中,只有當手機死於您的Activity時,您才會丟失數據。

我不建議為此使用文件,但是如果您的數據必須由不同的視圖訪問,處理,排序,過濾等,則可能超出您想考慮的SQLite范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM