关于SharedPreference.Editor的apply(

作者: cuzhu | 来源:发表于2016-04-27 11:29 被阅读3382次

在androidstudio上coding经常会提示一些警告,通过它我们能了解到一些自己不了解的好的编程习惯和少用的方法,本次发现就是一个例子,用习惯了SharedPreference.Editor的commit()方法,但是在studio提示使用apply()方法替换,看到apply()方法有点不知所措,因为根本不了解这个方法的作用随即翻阅android的api和google了一下apply()和commit()两者的区别。
首先,两者都能实现shared存储的功能,但是两者还是有着一些不同

  • apply方法是将share的修改提交到内存而后异步写入磁盘,但是commit是直接写入磁盘,这就造成两者性能上的差异,犹如apply不直接写入磁盘而share本身是单例创建,apply方法会覆写之前内存中的值,异步写入磁盘的值只是最后的值,而commit每次都要写入磁盘,而磁盘的写入相对来说是很低效的,所以apply方法在频繁调用时要比commit效率高很多。
  • apply虽然高效但是commit也有着自己的优势那就是它可以返回每次操作的成功与否的返回值,根据它我们就可以在操作失败时做一些补救操作。
    综上,studio提示我们使用apply是在效率上的优化考虑,但是如果你很重视share是否成功操作,并希望在失败时做相应的提示或者补救commit还是更好的选择。
    参考资料:
    http://developer.android.com/intl/zh-cn/reference/android/content/SharedPreferences.Editor.html#apply()
    http://blog.csdn.net/yanbober/article/details/47866369
    http://blog.sina.com.cn/s/blog_40e9d4dd0100xy1s.html

相关文章

  • 关于SharedPreference.Editor的apply(

    在androidstudio上coding经常会提示一些警告,通过它我们能了解到一些自己不了解的好的编程习惯和少用...

  • SharedPreference.Editor的apply和co

    在android 中存储数据时经常用SharedPreference, 并且在提交数据时一直用的是Editor的c...

  • SharedPreference.Editor的apply和co

    在是用Lint对项目源代码的进行分析得时候,Lint报了个警告如下Consider using 'apply()'...

  • SharedPreference.Editor的apply和co

    转载请标明出处:http://www.jianshu.com/p/7be25bfb4cb4本文出自:http://...

  • this_原型链_继承

    1. apply ,call ,bind有什么作用,什么区别 关于 apply callcall(thisObj,...

  • 关于 this_原型链_继承 相关问题总结

    关于this 1- apply、call 、bind的作用和区别 apply、call 、bind都有改变thi...

  • 关于apply的应用

    从一道js编程题开始: 实现函数 callIt,调用之后满足如下条件 1、返回的结果为调用 fn 之后的结果 2、...

  • Pandas

    一. 数据填充 1.apply() apply()同属处理两列数据 关于axis简单的来记就是axis=0代表往跨...

  • js apply和call

    apply和call apply的实例 apply的用法 apply方法:语法:apply([thisObj[,a...

  • js回调函数

    关于call和apply,call和apply的作用,完全一样,唯一的区别就是在参数上面。 call接收的参数不固...

网友评论

本文标题:关于SharedPreference.Editor的apply(

本文链接:https://www.haomeiwen.com/subject/hhdcrttx.html