2011-09-09 75 views
3

我在我的Android應用程序中有一個類,它使Parcelable可以在活動之間傳遞。在Android中支持Parcelable對象

我希望能夠將此對象保存到文件系統。看起來,因爲我已經實現了Parcelable,所以將其輸出傳遞給文件系統並稍後再讀取它是有意義的。

有沒有正確的方法來做到這一點?或者,如果我想要在活動之間傳遞對象並將其保存到文件系統,我是否必須實現Parcelable和Serialiazble?

回答

7

http://developer.android.com/reference/android/os/Parcel.html

包裹不是通用的序列化機制。該類(以及用於將任意對象放入Parcel的相應Parcelable API)被設計爲高性能IPC傳輸。因此,將任何Parcel數據放入持久性存儲中是不恰當的:Parcel中任何數據的底層實現中的更改都會導致舊數據無法讀取。

2

對於這個問題,我做了以下內容:

  1. 在我的對象實現Serializable接口
  2. 增加了的toJSON()方法將對象轉換爲JSON對象
  3. 使用的自定義JSONSerializer將JSON對象寫入文件
  4. 添加了一個構造函數,它將JSON對象用作參數,供自定義JSONSerializer使用

它最終變得非常簡單......如果需要,我可以粘貼一些示例代碼。

+2

請粘貼一些代碼 –