SharedPreferences - apply() vs. commit()



我知道应用和提交之间的区别。就我而言,我想使用commit(),但是Android建议我使用apply(),因为它在后台运行并且不会阻止主线程。

,如果我使用申请,是否有可能使用此类工作,或者是否有可能在致电之前不更新它?

editor.putBoolean("TEST", true)
editor.apply()
if (preferences.getBoolean("TEST")) {
   //do something
}

我希望它能起作用,如文档中所述:

apply()立即将其更改对内存共享广播,但启动异步对磁盘提交,并且您不会收到任何失败的通知。

当您访问相同的首选项对象(是单例)时,您应该始终看到一致的视图。

apply()写信给临时Map,后来异步写入磁盘。如果您在情况下立即使用getBoolean()之类的方法,则如果此键在临时Map中有一个值并将其返回。

,它将首先查找。

检查sharedPreferencesImpl的源代码以查看其工作原理。

最新更新