2012-05-16 69 views
2

我有一個ArrayList與自定義對象。每個自定義對象都包含各種字符串和數字。即使用戶離開活動並希望稍後再回來,我也需要數組來堅持,但是在完全關閉應用程序後,我不需要該數組。我通過使用SharedPreferences以這種方式保存了很多其他對象,但我無法弄清楚如何以這種方式保存整個數組。這可能嗎?也許SharedPreferences不是這樣的呢?有一個更簡單的方法嗎?如何在沒有數據庫的情況下永久保存arrayList,以及在Android中沒有Shared偏好?

+0

我相信使用SharedPreference比其他任何方法都簡單。 –

+0

我認爲你應該使用database.see這個共享的pref只用於促銷數據類型http://developer.android.com/guide/topics/data/data-storage.html#pref –

+0

是的..真的..但所有對象根據來自Web服務的響應動態傳遞....因此,對於我來說,管理共享首選項以動態傳輸數據太困難了......是否可以將它們保存在應用程序級別?如果是的話那怎麼樣? – Rushi

回答

1

您可以使用ObjectInputStreamObjectOutputStream來序列化ArrayList,因爲您的所有對象都顯示爲可序列化的。

序列化描述如下:http://java.sun.com/developer/technicalArticles/Programming/serialization/

在Android中,推薦的地方保存這些文件是使用由Context.getCacheDir()指定的目錄的話,你的活動,你只需撥打this.getCacheDir()得到它,然後建立一個唯一的文件提供給ObjectStream對象的名稱。

+0

不推薦在Android平臺上進行序列化,因爲它執行不必要的過程,因此速度很慢。 Parcelable是Android上Serialization的繼承者 –

+0

我同意,Parcelable會更符合平臺。然而,這樣做更爲複雜(請參閱http://stackoverflow.com/questions/1626667/how-to-use-parcel-in-android),除非他每秒要做數百次呼叫,否則我懷疑任何人會看到表現上的差異,但我承認我從未檢查過這個假設。 –

相關問題