android SharedPreferences的使用优化
今天,简单讲讲android如何优化使用SharedPreferences保存数据。
之前,我写代码是都是每次缓存一个键值对就commit一次,后来在完成看了看,发现应该是缓存完所有键值对后,再一次性存入比较好。这里记录一下。
SharedPreferences作为Android存储数据方式之一,主要特点是:
1. 只支持Java基本数据类型,不支持自定义数据类型;
2. 应用内数据共享;
3. 使用简单.
之前的使用方法
1、存数据
SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE);
sp.edit().putString("name", "小张").putInt("age", 11).commit();
sp.edit().putString("name", "小李").putInt("age", 12).commit();
这样每次都会创建新的Editor ,而且都次写入文件,效率比较低
优化后的使用方法
SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE);
Editor editor = sp.edit();
editor.putString("name", "小张");
editor.putInt("age", 11);
editor.commit();
这里当所有键值对缓存后,才一次性写入文件,效率比之前的好。
切记不要写成下面的形式,会导致数据无法存储
SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE);
sp.edit().putString("name", "小张");
sp.edit().putInt("age", 11);
sp.edit().commit();
为什么这种方式无法存储,因为sp.edit()每次都会返回一个新的Editor对象,Editor的实现类EditorImpl里面会有一个缓存的Map,最后commit的时候先将缓存里面的Map写入内存中的Map,然后将内存中的Map写进XML文件中。使用上面的方式commit,由于sp.edit()又重新返回了一个新的Editor对象,缓存中的Map是空的,所以导致数据无法被存储。
android SharedPreferences的使用优化就讲完了。
就这么简单。
android SharedPreferences的使用优化相关推荐
- Android SharedPreferences总结及优化
一.SharedPreferences简介 Android 中的 SharedPreferences(后续简称SP)是轻量级的数据存储方式,能够保存简单的数据类型,比如 String.int.bool ...
- ym——Android之ListView性能优化
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android之ListView性能优化 假设有看过我写过的15k面试题的朋友们一定知 ...
- 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 背景设置产生的过度绘制 | Android 系统的渲染优化 | 自定义布局渲染优化 )
文章目录 一. 背景设置产生的过度绘制 二. Android 系统的渲染优化 1. 透明组件数据传递 2. GPU 存储机制 3. Android 7.0 之后的优化机制 三. 自定义布局渲染优化 一 ...
- android系统电量优化,基于Android系统网络耗电量优化方法的.pdf
基于Android系统网络耗电量优化方法的 2012年第10期,第 45卷 通 信 技 术 Vol.45,No.10,2012 总第250期 Communications Technology No. ...
- Android:Socket客户端开发,Android 的Socket客户端优化,Android非UI线程修改控件程序崩溃的问题
一.Android:Socket客户端开发 创建一个工程 我们要做的是按下按键之后,去往服务器 (服务器) 或者我们自己写的服务器 ,给他发送一些预定好的东西 然后打开操作界面 然后修改一下 你要发送 ...
- android SharedPreferences数据存储
android SharedPreferences数据存储 很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友.对于软件配置参数的保存 ...
- android sharedpre,Android SharedPreferences四种操作模式使用详解_Android_脚本之家
Android SharedPreferences详解 获取SharedPreferences的两种方式: 1 调用Context对象的getSharedPreferences()方法 2 调用Ac ...
- android sharedpreferences工具类
今天,简单讲讲如何写一个sharedpreferences的工具类. 很简单,把一些重复的操作封装在工具类里,其他地方调用就可以.在网上搜索了比较多的资料,找到一个比较好的工具类. 参考文章:http ...
- android SharedPreferences保存list数据
今天,简单讲讲如何使用 SharedPreferences保存list数据. 网上找了很多资料,还是觉得这种比较简单.直接上代码: 保存: public static boolean saveA ...
最新文章
- 第十六周程序阅读(5)
- spring自定义标签实现
- 设计模式(24)-----责任链模式
- Refactor?or Patching?
- 心理学专业转用户体验_用心理学设计奇妙的用户体验
- gem install sass 本地配置和淘宝源无效的解决办法
- 漫步数学分析二十四——连续函数空间
- c语言通讯录程序线性表,数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)...
- factorymenu什么意思_宏基20lsquo;显示屏AUTO和MENU是什么意思,在什么位置_已解决 - 阿里巴巴生意经...
- L2-024. 部落-PAT团体程序设计天梯赛GPLT
- TensorFlow基础篇(一)——tf.train.exponential_decay()
- 图片旋转,拖拽,缩放,删除一体
- 北京长途汽车站一览表
- 从家庭主妇到格力老总,董明珠的大女主逆袭之路
- UI设计中图标设计的有几大原则
- RabbitMQ核心功能介绍
- 如何改善睡眠状态?建议你尝试这些方法和好物
- OpenGL-曲面细分
- 四十四、​Fluent 收敛标准-质量和能量守恒
- Python中的对日期时间的处理
热门文章
- 会使用基本的Render函数后,就会想,这怎么用 v-for/v-if/v-model;我写个vue Render函数进阶...
- 生成EXCEL文件是经常需要用到的功能,我们利用一些开源库可以很容易实现这个功能。...
- Oracle Spatial分区应用研究之一:分区与分表查询性能对比
- Nodejs学习事件模块
- 带有静态方法的类(java中的math类)
- Java8 時間API
- python3 getopt用法
- redis hash
- toLua关于委托没有注册的解决方案
- 【BZOJ 3229】 3229: [Sdoi2008]石子合并 (GarsiaWachs算法)