2011-12-15 43 views
24

我將字符串存儲到共享首選項中,但我無法找到可以存儲的最大字符串長度。你知道這個價值嗎?共享首選項 - 單個值的最大長度

感謝

航點

+0

如果它真的很大,比如超過10千字節,您可能想要以其他方式保存它,也許是磁盤上的文件。 – Fred 2014-07-11 14:51:23

回答

53

通過Romain Guy從問題Asked Here

無論Java字符串的最大長度是。所以像 Integer.MAX_VALUE字符。

我想,雖然SharedPreferene是一個XML文件與一個標籤存儲,如果你只存儲一對/對象。 所以沒有限制在寫字符串,如果你認爲你是在一個文件中寫入。(Theoratically)

其實發生的事情是,當你在價值分配使用put/get SharedPreference功能當時你在字符串對象 ..中的讀取/寫入值,因此限制變成一次存儲值,等於Java的字符串對象的大小限制。

因此,儘管書面方式代碼:SharedPreference字符串大小的極限=的Java String對象的大小限制(實際上)

+1

`Integer.MAX_VALUE`是2147483647。 – Fred 2014-07-11 14:47:36

14

共享偏好存儲在/data/data/[package_name]/shared_prefs/[app name].xml,我認爲有沒有限制按照Android的架構。

0

當我試圖挽救最大長度的字符串到我的設備的SharedPreferences,它拋出一個內存SharedPreferences數據超過1.42 MB時發生異常。

所以如果你有超過1.42MB的數據大小來保存它更好地保存使用SQLite數據庫。

根據developer.android。 「如果您想要保存的鍵值的集合相對較小,則應該使用SharedPreferences API。」