我已經成功創建了一個雲端點模型,可以輕鬆從App Engine中檢索信息。爲了減少往返並提供更快的用戶體驗,我確定了一個我希望存儲到本地存儲的實例。將雲端點模型類序列化爲Android文件系統的方法
在我的應用程序的其餘部分,我使用ObjectInputStream的讀取和寫入的對象,如:
FileInputStream fis = context.openFileInput("PRIVFILE");
ObjectInputStream ois = new ObjectInputStream(fis);
AppModelState s = (AppModelState) ois.readObject();
這顯然需要的所有數據成員實現Serializable接口。 Model類擴展了GenericJSON並且不是「Serializable」,因爲我可以手動創建映射到模型的可序列化對象;然而,由於屬性的數量,這似乎非常業餘。
另一種選擇我認爲是創建簡單地具有JSON字符串作爲成員,並提供設置器/吸氣劑接受ModelClass作爲參數,例如序列化的對象的包裝:
class AppModelState implements Serializable {
private String modelClassJSON;
public ModelClass getModelClass() {
// generate a new ModelClass from the JSON
}
public void setModelClass(ModelClass c) {
// extract the JSON for storage
}
.....
}
我覺得好像有必須是一個更好的方法,這應該已經解決了十幾次,但我沒有找到任何資源。請提供意見。
@Brain你知道一種反序列化雲端點對象的**列表**的方法嗎? – AsafK 2013-12-08 00:10:12
@AsafK,這是一個很好的問題。我並沒有試圖這樣做,只好玩了一下才得以實現。我用我發現的內容更新了我的答案。如果你的雲端點庫包含一個其他對象列表的對象,那麼我認爲它已經「只是工作」(儘管我沒有嘗試過)。 – 2013-12-09 02:48:25