SharedPreferences在安卓中用来保存应用程序数据。
commit()和apply()都用于保存共享首选项中的更改。
正如在安卓库中提到的:
public abstarct void apply():
与 commit() 不同,apply() 方法会立即将更改提交到内存中的 SharedPreferences,但它会异步地将更改提交到磁盘,并且您将不会收到任何失败的通知。如果在 apply() 方法提交之后,此 SharedPreferences 的另一个编辑器执行了常规的 commit() 操作,则该 commit() 操作会阻塞,直到所有异步提交以及 commit() 操作本身全部完成为止。public abstract boolean commit ():
将此编辑器中的偏好更改提交回正在编辑的 SharedPreferences 对象。这将原子性地执行所请求的修改,替换当前在 SharedPreferences 中的任何内容。
这是否意味着commit()所做的更改与apply()相比是即时的?哪一个更好?
如果我需要在下一个立即活动中使用同一共享首选项值,应该使用哪一个?因为我已经看到,如果更新了首选项的值,则在重新启动应用程序之前不会反映出来。