SharePreference两种提交方式的区别

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"); 
    } 
} 

反例

//反例
editor.putLong("key_name", "long value"); 
editor.commit(); 
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值