apply()方法
- apply()方法没有返回值;
- apply()方法先提交到内存是一个原子操作,然后异步提交到Disk。如果有两个editors同时修改preferences,最后一个调用apply()方法的会成功。apply()方法因为异步提交到Disk,所以效率更高。
commit()方法
- commit()方法有返回值;
- commit()方法是直接提交到Disk,是一个原子操作,如果两个editors同时修改preferences,最后一个调用commit()方法的会成功。
总结:apply()方法和commit()方法都是先提交到内存,commit是同步提交到硬盘,并且有返回值;而apply()方法是异步提交到硬盘,没有返回值。
参考资料:
有关SharedPreferences 的commit和apply分析