2012-12-19 87 views
-3

我想問一個關於android上的數據持久性的建議..事情是這樣的:我有一個小的休息應用程序,從一個RESTful API得到一個json數據,用傑克遜反序列化成一個自定義對象,之後,我用這個對象來餵我的用戶界面,問題是我想這個數據是持久的或至少緩存。Android上的數據持久性替代

我看到有一些選項可以使用:ORM-lite將對象保存在sqlite數據庫中或將JSON字符串保存到共享首選項或內部存儲器中的文件中,我已閱讀過關於關於這個話題的android開發者網站。

我的對象的結構至少有15個字段,它與另一個對象有關。

這將是一個不錯的選擇?

回答

0

這真的取決於其他一些變數。

共享首選項適用於可迭代的鍵/值對,但並非真正爲關係數據設計。它們也意味着存儲有限數量的數據,而不是任意大的數據集。例如,您可以將用戶名保存在SharedPref中,但可能不是用戶在每個級別獲得的每個分數的完整歷史記錄,也不是每個級別的定義。

SQLite是在關係型數據更好,因爲它是一個關係型數據庫,但如果您只想在同一時間舉行對一個對象時,它可能是矯枉過正。通常你需要建立一個內容提供者,但我認爲ORMLite會爲你處理。

所以:如果你只存儲此JSON對象的一個​​或兩個實例在任何給定的時間,也許是共享的PREF只是爲了方便。如果您存儲了大量的SQLite數據庫及其相關數據。

1

個人而言,我建議將JSON字符串保存爲應用程序數據區中的文件,至少假設它不是很大,解析它很慢。一般來說,解析JSON是相當快的。

如果你需要存儲這個JSON對象的多個版本,那麼一個數據庫可能會成爲一種方式。

我不會推薦以這種方式使用SharedPreferences。