在 SharedPreferences 中保存大约 30 个字符串数据并显示 java.lang.OutOfMemoryError
Save about 30 String Data in SharedPreferences and it Show java.lang.OutOfMemoryError
我想在我的 android 应用程序中保存大约 30 个字符串数据,但有时在 android phone 几乎满内存时,会出现此错误:
Fatal Exception: java.lang.OutOfMemoryError
at com.android.internal.util.FastXmlSerializer.(FastXmlSerializer.java)
at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:177)
at android.app.SharedPreferencesImpl.writeToFile(SharedPreferencesImpl.java:596)
at android.app.SharedPreferencesImpl.access0(SharedPreferencesImpl.java:52)
at android.app.SharedPreferencesImpl.run(SharedPreferencesImpl.java:511)
at android.app.SharedPreferencesImpl.enqueueDiskWrite(SharedPreferencesImpl.java:532)
at android.app.SharedPreferencesImpl.access0(SharedPreferencesImpl.java:52)
at android.app.SharedPreferencesImpl$EditorImpl.commit(SharedPreferencesImpl.java:454)
在 sharedpreference 中保存大约 30 个字符串还好吗?
我从 here 了解到不要为每个更改创建一个新的编辑器,也许我必须更改一些调用新编辑器的字符串更改,这对防止 java.lang.OutOfMemoryError 还是我必须做其他事情?
您不能在 SharedPrefrences 中存储大量数据。根据您的移动设备,您可以存储 1~2MB 甚至更少。如果需要存储大量数据,那么使用 sqlLite 数据库是安全的。有几个简单的 sqlLite 库,例如 http://satyan.github.io/sugar/
我想在我的 android 应用程序中保存大约 30 个字符串数据,但有时在 android phone 几乎满内存时,会出现此错误:
Fatal Exception: java.lang.OutOfMemoryError at com.android.internal.util.FastXmlSerializer.(FastXmlSerializer.java) at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:177) at android.app.SharedPreferencesImpl.writeToFile(SharedPreferencesImpl.java:596) at android.app.SharedPreferencesImpl.access0(SharedPreferencesImpl.java:52) at android.app.SharedPreferencesImpl.run(SharedPreferencesImpl.java:511) at android.app.SharedPreferencesImpl.enqueueDiskWrite(SharedPreferencesImpl.java:532) at android.app.SharedPreferencesImpl.access0(SharedPreferencesImpl.java:52) at android.app.SharedPreferencesImpl$EditorImpl.commit(SharedPreferencesImpl.java:454)
在 sharedpreference 中保存大约 30 个字符串还好吗?
我从 here 了解到不要为每个更改创建一个新的编辑器,也许我必须更改一些调用新编辑器的字符串更改,这对防止 java.lang.OutOfMemoryError 还是我必须做其他事情?
您不能在 SharedPrefrences 中存储大量数据。根据您的移动设备,您可以存储 1~2MB 甚至更少。如果需要存储大量数据,那么使用 sqlLite 数据库是安全的。有几个简单的 sqlLite 库,例如 http://satyan.github.io/sugar/