外观
SharedPreferences.commit() 和 apply() 的区别是什么?为什么推荐使用 apply()?
标准回答
commit 会等待写盘并返回是否成功;apply 先更新内存,再安排写盘,调用方不等待结果。
通俗例子
保存一个主题开关通常可用 apply;必须知道本次保存是否成功时,可在后台调用 commit。apply 也不代表底层写盘完全没有性能影响。
深入解释
**内存更新和磁盘落盘是两步:**apply 和 commit 都会更新进程内看到的配置;apply 把写磁盘工作安排为异步,commit 同步等待并返回是否写入成功。
**为什么仍要控制使用频率:**apply 不返回磁盘成功结果,也不代表所有调用成本都为零。大量、频繁写配置会增加存储工作,关键持久化不要只凭调用已返回就断定已经落盘。
内容来源
- Android · AI Agent 知识手册 · 原条目
5.1.1