SharedPreferences 用于在 Android 中保存应用程序数据。
commit()
两者apply()
都用于保存共享首选项中的更改。
如Android库中所述:
public abstarct void apply():
与将其首选项同步写入持久存储的 commit() 不同,apply() 会立即将其更改提交到内存中的 SharedPreferences,但会开始异步提交到磁盘,并且不会通知您任何失败。如果此 SharedPreferences 上的另一个编辑器在 apply() 仍未完成时执行常规 commit(),则 commit() 将阻塞,直到所有异步提交以及提交本身完成。
public abstract boolean commit ():
将您的首选项更改从该编辑器提交回它正在编辑的 SharedPreferences 对象。这会自动执行请求的修改,替换 SharedPreferences 中当前的任何内容。
这是否意味着commit()
与 相比, 所做的更改是即时的apply()
?哪一个更好?
如果我需要在下一个即时活动中使用相同的共享偏好值,我应该使用哪一个?正如我所看到的,如果 Preference 的值被更新,它直到应用程序重新启动才会反映出来。