【发布时间】:2013-02-26 10:40:33
【问题描述】:
SharedPreferences 用于在 Android 中保存应用程序数据。
commit() 和apply() 都用于保存共享首选项中的更改。
如 Android 库中所述:
public abstarct void apply():
与 commit() 不同,commit() 将其偏好写入持久化 同步存储,apply() 将其更改提交到内存中 SharedPreferences 立即但开始异步提交 磁盘,您将不会收到任何故障通知。如果另一个编辑 此 SharedPreferences 执行常规 commit() 而 apply() 是 仍然未完成,commit() 将阻塞,直到所有异步提交都完成 完成以及提交本身。
public abstract boolean commit ():
将您的首选项更改从该编辑器提交回 它正在编辑的 SharedPreferences 对象。这原子地执行 请求修改,替换当前在 共享首选项。
这是否意味着commit() 所做的更改与apply() 相比是即时的?哪个更好?
如果我需要在下一个即时活动中使用相同的共享偏好值,我应该使用哪一个?正如我所看到的,如果 Preference 的值被更新,它直到应用程序重新启动才会反映出来。
【问题讨论】:
标签: java android sharedpreferences