Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 共享首选项-单个值的最大长度_Android_Sharedpreferences - Fatal编程技术网

Android 共享首选项-单个值的最大长度

Android 共享首选项-单个值的最大长度,android,sharedpreferences,Android,Sharedpreferences,我正在将字符串存储到共享首选项中,但我无法找到可以存储的字符串的最大长度。你知道这个值吗?共享首选项存储在/data/data/[package\u name]/Shared\u prefs/[app name].xml,我认为根据android架构,没有限制。从问题中 无论Java字符串的最大长度是多少。大概是 Integer.MAX_值字符 如果只存储一对/对象,我假设SharedReference是一个带有一个标记的XML文件。 所以,如果你认为自己在写文件,那么写字符串是没有限制的…(理

我正在将字符串存储到共享首选项中,但我无法找到可以存储的字符串的最大长度。你知道这个值吗?

共享首选项存储在
/data/data/[package\u name]/Shared\u prefs/[app name].xml
,我认为根据android架构,没有限制。从问题中

无论Java字符串的最大长度是多少。大概是 Integer.MAX_值字符

如果只存储一对/对象,我假设SharedReference是一个带有一个标记的XML文件。 所以,如果你认为自己在写文件,那么写字符串是没有限制的…(理论上)

但实际上发生的是,当您使用
put/get
函数将值分配给SharedReference时,您读取/写入字符串对象中的值。因此,该限制变成一次存储值,等于Java字符串对象的大小限制


因此,在编写代码时:限制SharedReference字符串大小=Java字符串对象大小限制(实际上)

当我试图将最大长度字符串保存到设备中的SharedReference中时,当SharedReference数据超过1.42 MB时,它会引发内存异常

所以,如果要保存的数据大小超过1.42MB,最好使用SQLite数据库

根据:

如果您有一个相对较小的键值集合 要保存,您应该使用SharedReferences API


Integer.MAX_VALUE
是2147483647。如果它真的很大,比如超过10 KB,你可能想用其他方式保存它,可能是磁盘上的文件。在android移动应用程序中保存api令牌的共享首选项安全吗?请建议。谢谢