我有一個ArrayList與自定義對象。每個自定義對象都包含各種字符串和數字。即使用戶離開活動並希望稍後再回來,我也需要數組來堅持,但是在完全關閉應用程序後,我不需要該數組。我通過使用SharedPreferences以這種方式保存了很多其他對象,但我無法弄清楚如何以這種方式保存整個數組。這可能嗎?也許SharedPreferences不是這樣的呢?有一個更簡單的方法嗎?如何在沒有數據庫的情況下永久保存arrayList,以及在Android中沒有Shared偏好?
回答
您可以使用ObjectInputStream
和ObjectOutputStream
來序列化ArrayList
,因爲您的所有對象都顯示爲可序列化的。
序列化描述如下:http://java.sun.com/developer/technicalArticles/Programming/serialization/
在Android中,推薦的地方保存這些文件是使用由Context.getCacheDir()
指定的目錄的話,你的活動,你只需撥打this.getCacheDir()
得到它,然後建立一個唯一的文件提供給ObjectStream對象的名稱。
不推薦在Android平臺上進行序列化,因爲它執行不必要的過程,因此速度很慢。 Parcelable是Android上Serialization的繼承者 –
我同意,Parcelable會更符合平臺。然而,這樣做更爲複雜(請參閱http://stackoverflow.com/questions/1626667/how-to-use-parcel-in-android),除非他每秒要做數百次呼叫,否則我懷疑任何人會看到表現上的差異,但我承認我從未檢查過這個假設。 –
如果您在應用程序被終止後不需要它,也許您可以嘗試使用onSaveInstanceState()和onRestoreInstanceState()。
Here是一個簡短的例子,展示如何使用它!
- 1. 在沒有數據庫的情況下永久保存php變量
- 2. 如何在沒有sudo的情況下永久運行Ec2
- 3. 如何在沒有任何數據庫的情況下保存我的datagridview?
- 4. android永久保存用戶偏好?
- 5. 有沒有辦法在沒有數據庫的情況下將數據保存在Java EE應用程序中?
- 6. 如何在沒有數據庫的情況下收集數據
- 7. 數據沒有被保存在ArrayList中
- 8. 如何在沒有webservice的情況下訪問數據庫?
- 9. 如何在沒有eval()的情況下存儲邏輯數據?
- 10. Docker:容器如何在容器中沒有卷的情況下保存數據?
- 11. 在沒有ORM的情況下在Python中使用數據庫
- 12. 如何在沒有背景的情況下保存圖形?
- 13. 在有或沒有索引的情況下複製數據庫?
- 14. 有沒有辦法永久保存遊戲數據?
- 15. 如何讓php在沒有cron的情況下永遠工作?
- 16. android如何在沒有年份的情況下存儲日期?
- 17. 如何在沒有保存鍵的情況下在PHP中合併數組?
- 18. 如何在沒有集合的情況下洗牌ArrayList
- 19. 在沒有文本文件的情況下將數據保存在Python中?
- 20. 在沒有數據庫調用的情況下獲取持久實體引用
- 21. 如何在沒有Django數據庫的情況下存儲通信對象?
- 22. 如何在沒有數據庫(PHP)的情況下存儲密碼?
- 23. 在沒有參考的情況下保留數據
- 24. 可以在沒有web.config的情況下在sqlCacheDependency集合中添加數據庫
- 25. OutputCache - 只有在GET中沒有參數的情況下緩存
- 26. 如何在沒有編程的情況下在android中查看(查看)數據庫中存儲的值
- 27. 爲什麼在以下情況下沒有數據競爭?
- 28. 如何在沒有數據庫的情況下具有導航屬性
- 29. 如何在沒有數據的情況下創建mysql數據庫基線
- 30. 如何在沒有DataSnapshot的情況下從Firebase數據庫檢索數據? #AskFirebase
我相信使用SharedPreference比其他任何方法都簡單。 –
我認爲你應該使用database.see這個共享的pref只用於促銷數據類型http://developer.android.com/guide/topics/data/data-storage.html#pref –
是的..真的..但所有對象根據來自Web服務的響應動態傳遞....因此,對於我來說,管理共享首選項以動態傳輸數據太困難了......是否可以將它們保存在應用程序級別?如果是的話那怎麼樣? – Rushi