当前位置:   article > 正文

SharePreference两种提交方式的区别_android shaareprence commit和clone、区别

android shaareprence commit和clone、区别

SharePreference两种提交方式的区别

区别

sharepreference 两种提交方式是commit和apply,区别在于:
1.commit 返回boolean类型的值,提示是否提交成功,而apply没有返回值;
2.commit 直接写入磁盘,apply先写入内存,然后异步写入磁盘;
总结:
commit是同步提交,返回值告诉我们是否提交成功;apply是异步提交,效率高,无法确定是否提交成功。

建议

根据阿里巴巴Android开发手册
【推荐】SharedPreference 提交数据时,尽量使用 Editor#apply(),而非 Editor#commit()。一般来讲,仅当需要确定提交结果,并据此有后续操作时,才使 用Editor#commit()。
说明:
SharedPreference 相关修改使用apply方法进行提交会先写入内存,然后异步写入 磁盘, commit方法是直接写入磁盘。如果频繁操作的话apply的性能会优于commit, apply会将后修改内容写入磁盘。但是如果希望立刻获取存储操作的结果,并据此 做相应的其他操作,应当使用commit

正例

//正例
public void updateSettingsAsync() { 
 // 单例的sharepreference
    SharedPreferences mySharedPreferences = getSharedPreferences("settings", Activity.MODE_PRIVATE); 
    SharedPreferences.Editor editor = mySharedPreferences.edit(); 
    editor.putString("id", "foo"); 
    editor.apply(); 
} 
public void updateSettings() { 
    SharedPreferences mySharedPreferences = getSharedPreferences("settings", Activity.MODE_PRIVATE); 
    SharedPreferences.Editor editor = mySharedPreferences.edit(); 
    editor.putString("id", "foo"); 
    if (!editor.commit()) { 
        Log.e(LOG_TAG, "Failed to commit setting changes"); 
    } 
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

反例

//反例
editor.putLong("key_name", "long value"); 
editor.commit(); 
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/308814
推荐阅读
相关标签
  

闽ICP备14008679号