-
Notifications
You must be signed in to change notification settings - Fork 21
SharedPreference存储数据的两种方式:commit与apply的异同点
hansheng edited this page Jan 4, 2017
·
4 revisions
相同点:
两者都可以提交数据
两者都是原子过程。
不同点:
1.apply没有返回值而commit返回boolean表明修改是否提交成功
2.apply是将修改数据原子提交到内存,而后异步真正提交到硬件磁盘;而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。而apply只是原子的提交到内容,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多效率。
区别: commit将同步的将数据写到preferences;apply立即更改内存中的SharedPreferences,但是开始异步提交到磁盘中。保存失败你也不会得到任何提示信息,
在忽悠返回值的前提下,取代任何实例的commit或apply都是安全的。