我想在我的android應用程序中有一個全局ArrayList變量,我只是想知道如何在應用程序完成時保存這個碎片列表,並在應用程序重新啓動時返回相同的ArrayList?應用程序重新啓動時獲取ArrayList?
0
A
回答
1
爲每個Fragment
指定一個ID並將ID列表保存爲SharedPreferences
。當您重新啓動應用程序時,請按照您保存到SharedPreferences
的ID的順序充氣/顯示Fragment
。
如何編寫/從SharedPreferences
讀ArrayList
到/:https://stackoverflow.com/a/22985657/5250273
0
你應該只存儲數組列表之前您的應用程序是由Android殺害。當你的應用程序啓動時,你的應用程序應該加載數據。
讓我來解釋一下。 在實施之前,我認爲你應該檢查fragment's lifecycle。
onSaveInstaceState()方法之前的onPause()(片段殺死之前)調用。所以你應該用這種方法保存你的數據。
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// Storing my arraylist on bundle
outState.putStringArrayList("savedList", list);
}
要加載數據,居然有是的onCreate()後呼籲活動(創建一個新的活動之前)一個OnRestoreInstanceState()方法。但是,片段沒有OnRestoreInstanceState()生命週期方法。所以你可以使用onCreate(),onCreateView()或onActivityCreated()方法來加載你的日期。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState != null){
// Loading my arraylist
list=savedInstanceState.getStringArrayList("savedList");
}
關於storing data on android有很多選項。在共享偏好簡單數據類型的
- 保存鍵 - 值對 文件
- 保存在Android的文件系統中任意文件
- 使用的SQLite 管理的數據庫
你應該只補你的思想選擇你的方式來保存你的日期。
我希望它能幫助你。
相關問題
- 1. 當應用程序重新啓動時,ArrayList將無法加載
- 2. 應用程序何時重新啓動?
- 3. 獲准應用於應用程序時,它重新啓動
- 4. 獲取Mac應用程序的關機/重新啓動通知
- 5. [Android]應用程序重新啓動設備後重新啓動
- 6. 在重新啓動應用程序時重新啓動Android活動
- 7. 重新啓動應用程序時的流星自動刷新
- 8. React Native iOS應用程序在重新啓動時重新啓動
- 9. 取消應用程序重新啓動時由applicationDidEnterBackground啓動的任務
- 10. 重新啓動Java應用程序
- 11. Netbeans - 應用程序重新啓動
- 12. 重新啓動Android應用程序
- 13. TTNavigator重新啓動應用程序內
- 14. Android - backbutton - 重新啓動應用程序
- 15. 重新啓動Swing應用程序
- 16. 重新啓動Rails應用程序
- 17. 重新啓動Java應用程序
- 18. 當應用程序重新啓動
- 19. 重新啓動Iphone應用程序
- 20. 避免重新啓動應用程序
- 21. 問題:重新啓動應用程序
- 22. 重新啓動Eclipse應用程序
- 23. 無需重新啓動應用程序
- 24. FragmentCompat重新啓動應用程序
- 25. 如何在發生更新時重新啓動應用程序?
- 26. ClickOnce更新時,應用程序會重新啓動多次
- 27. 應用程序在重新啓動活動時崩潰
- 28. 應用程序在手動kill後重新啓動時崩潰
- 29. 在機器重啓時自動重啓應用程序掛起應用程序
- 30. 如何在每次打開應用程序時重新啓動應用程序?