我正在将字符串存储到共享首选项中,但我无法找到可以存储的最大字符串长度。您知道这个值吗?
我正在将字符串存储到共享首选项中,但我无法找到可以存储的最大字符串长度。您知道这个值吗?
由Romain Guy提供,来自此处提问:
Java字符串的最大长度是多少?比如Integer.MAX_VALUE个字符。
我想,如果你只存储一个键值对/对象,那么SharedPreference就像是一个只有一个标签的XML文件。因此,如果你把它看作文件写入,那么在其中写入字符串时,理论上没有限制...(理论上)
但实际上,在使用put/get
函数将值存储到SharedPreference时,你会读取/写入字符串对象中的值...因此,一次存储值的限制等于Java字符串对象的大小限制。
因此,在编写代码时:SharedPreference字符串大小限制 = Java字符串对象大小限制(实际上)
Integer.MAX_VALUE
的值为2147483647。 - Fred共享偏好设置存储在/data/data/[package_name]/shared_prefs/[app name].xml
中,根据Android架构来看,我认为没有限制。
当我试图将最长的字符串保存到设备的SharedPreferences中时,如果SharedPreferences数据超过1.42 MB,则会引发Memory Exception异常。
因此,如果您有超过1.42 MB的数据大小要保存,最好使用SQLite数据库进行保存。
如果您有一个相对较小的键值集合需要保存,您应该使用SharedPreferences API。