8
我需要序列化一個全面的應用程序(遊戲)狀態,通過網絡傳輸或保存到磁盤並在稍後檢索。序列化用於網絡和/或永久存儲的Android Bundle?
捆綁包當然用於在多種使用情況下保存/恢復狀態,因此使用它們將是理想選擇。但是,由於某些原因,Bundle不可序列化。
尋找一個解決方案只會讓Bundle變成一個包裹然後編組,這是不可接受的破解,但它不是一個可接受的解決方案,因爲不能保證可以解組數據以後的日期或在遠程設備上。
因此,現在看來,唯一的解決方案似乎是從Bundle中獲取整套密鑰,獲取每個包含的對象,在每個Object.Class上執行一個相當大的開關/案例,並手動構建一個巨大的ByteBuffer或類似的所有這些數據,以及大小和類型信息,以便成功重建整個事物的另一方面。
不完全平滑。
有誰知道更好的方法?也許有人已經爲Bundle創建了一個實用函數來做到這一點?
這只是一個Android的褲子在腦海中的愚蠢點。如上所述,Bundle <-> Parcelable是可行的核心(和Parcable <-> Binary),但Parcelable僅爲非持久使用而設計。應該包括一些持久性的Bundle <-> XML或Bundle <-> JSON(或任何其他的,真的)..我見過的「最佳」解決方案只是將一些JSON插入到Bundle屬性中,否則將Bundle抓取並死亡。 – 2013-01-15 06:21:23