定义:
void apply
boolean commit;
相同:二者都是提交修改的数据
手机里的文件存放在/data/data/<package_name>/shared_prefs 目录下
不同:
1.apply没有返回值 并且api 9开始支持
软件在使用的时候,需要添加 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { //api 9开始引入apply方法
来决定是否引用apply
}
commit返回boolean
表明修改是否提交成功。
2.apply是将修改数据提交到内存,而后异步真正提交到硬件磁盘;
而commit是同步的提交到硬件磁盘;
因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。
而apply只是将修改提交到内存,后面有调用apply的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多效率。
3.apply方法不会提示任何失败的提示。
综合上述,由于在一个进程中,SharedPreference是单实例,一般不会出现并发冲突, 如果对提交的结果不关心的话,建议使用apply,这样有利于提高性能。
当需要有返回值的时候,还是需要用commit的。