SharedPreferences.Editor.apply 强制关闭
我正在使用以下代码:
SharedPreferences.Editor edit = mPrefs.edit();
edit.putString("UUID", UUID.randomUUID().toString());
edit.commit();
//edit.apply();
这工作正常,但如果我注释掉提交并取消注释应用,应用程序将在我的设备上强制关闭,不会出现错误消息或引发异常。奇怪的是,这在 2.2 和 2.3.3 下的模拟器中运行良好。它仅在我运行 2.2.1 的 Nexus 上关闭
我有上面的解决方法,但我对关闭的原因很感兴趣。
有人可以帮忙吗?
干杯,韦纳图
I am using the following code:
SharedPreferences.Editor edit = mPrefs.edit();
edit.putString("UUID", UUID.randomUUID().toString());
edit.commit();
//edit.apply();
This works fine, but if I comment out the commit and uncomment the apply, the app force closes on my device with no error message, or exception thrown. Strangely, this runs fine in the emulator, under 2.2 and 2.3.3. It only closes on my Nexus one running 2.2.1
I have the workaround above, but am interested as to the cause of the close.
Can anyone help?
Cheers, Venatu
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
apply()
是在 API 级别 9(又名 Android 2.3)中添加的。不要尝试在 Android 2.2 上使用它。apply()
was added in API level 9 (a.k.a., Android 2.3). Do not attempt to use it on Android 2.2.我使用这样的代码很简单:
然后我将这两个神奇方法作为静态导入。
提交在阻止 UI 时运行,因此如果保存大量数据,这可能会出现问题。我使用后台线程进行提交(这是有问题的...),但现在许多用户都使用 2.3,所以我认为较旧的应该切换...
It’s simple I use kode like this:
and then I have those two magic methods as static imports..
Commit runs while blocking UI so that can be problem if saving large data. I used background thread for commit (it’s problematic...) but now many users have 2.3 so I think older should switch...