在 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/