2016-02-28 67 views
0

我需要將對象數組保存到SharedPreferences,起初代碼是使用Serializable對象保存「原樣」數組。如何避免將JSON保存到SharedPreferences時出現OutOfMemoryError

我試圖將對象保存爲json以避免此問題,但這種情況仍在發生。即使我的Try and Catch塊也不能幫助我至少不會使應用程序崩潰。

1。正在保存到json到SharedPreferences是更輕的保存文件與Serializable對象?

2。用對象保存數組的最佳方法是什麼?

3。如何避免OutOfMemoryError崩潰?並檢測它們?

救了我這我的代碼:

editor.putString(key, new Gson().toJson(object)); 
+0

你必須有一個非常大的對象 – Arlind

+1

我會建議你使用另一種方法將數據保存到光盤而不是sharedprefernces。 Sharedprefernce非常適合保存簡單的鍵值對象,而不是複雜的數據結構。我覺得通過使用ORM的sqlite實現將更適合這種用例。 – Tobrun

+0

贊同@Tobrun或只是將序列化的字符串保存到一個文件 – Yazan

回答

1

我會使用你的數據持久化到光盤比sharedprefernces的另一種方式建議你。 Sharedprefernce非常適合保存簡單的鍵值對象,而不是複雜的數據結構。我覺得通過使用ORM的sqlite實現將更適合這種用例。

+0

我同意!我幾天前收到了這個項目,我試圖理解如何處理這個問題,之後我們會改變結構,因爲我同意我們應該這樣做。 –