首先来看apply方法在官方文档中的解释:
来比较一下两者的区别:
- apply无返回值,而commit会返回一个boolean类型值来表示数据是否被成功持久化存储。
- apply立刻将更改提交到内存中SharedPreferences,但是会启动对磁盘的异步提交;commit是同步的提交到磁盘。这样一来,在有多个Editor需要提交时,它们会等待正在处理的commit完成后再操作,效率较低。
由于在进程中,SharedPreferences是单例,因此如果已经忽略了返回值,则可以安全地将commit替换为apply。