用Gson和SharedPreferences轻松构建android本地数据缓存
来源:互联网 发布:驱鼠器真的有用吗 知乎 编辑:程序博客网 时间:2024/05/02 01:49
原文:http://blog.csdn.net/gonjay/article/details/13509321
做Android本地数据的存储无非就是
1 使用SharedPreferences存储数据
2 文件存储数据
3 SQLite数据库存储数据
4 使用ContentProvider存储数据
这些方式已经被用烂了,第一个在存储用户设置比较多,第二个用在图片缓存游戏数据混村等,第三个使用数据库功能上来说是最强大的,结合一些ORM类,可以构建很丰富的应用,很多需要和服务端交互的数据都会走SQLite。
按照传统Java的习惯,对于多个对象的数据,使用SQLite是最轻松就能想到的,但使用SQLite还需要自己写一个DBHelper,这对于有多年Java数据库经验的人而言自然是很熟练,但是在实际的Android项目开发中,你需要关注UI、用户体验、产品和逻辑,很难有精力自己去实现这样一套东西,而且就算幸苦做出来,在使用的时候也会遇到各种麻烦的事情,总之在本地使用数据库真的是一件非常吃力不讨好的事情。
当然,如果单纯的使用SharedPreferences,你只能存一些键值对,这对于丰富的UI交互与数据交互的Android平台而言实在太麻烦了,我也一直在为这个问题困扰,开发Android的时候总感觉快不起来。
另外一个困扰我的问题就是对于服务端返回的JSON数据,经常需要解析,总是要实现一套JSON解析的工具,因为不同的项目和不同数据交互,处理的JSON对象往往不同,很是头疼。然而自从接触了谷歌的Gson之后,处理起JSON的效率一下就有了质的飞跃,特么原来还有这么爽的工具,做梦都要笑醒了。
再回过头看看Android客户端的本地数据缓存,再看看JSON数据,我便拿起Gson,将对象变成JSON String存到了SharedPreferences里面,取用的时候把JSON String用Gson实例化为对象,立刻就能在UI层面上setText(user.name)了,还有比这更爽的方式吗?
下面是一些实践中使用过的代码片段:
- public class UserUtils {
- public static String getUserInfo() {
- SharedPreferences pref = getAppContext().getSharedPreferences(
- "user_login", 0);
- return pref.getString("user_info", "");
- }
- public static boolean saveUserInfo(String info) {
- SharedPreferences pref = getAppContext().getSharedPreferences(
- "user_login", 0);
- return pref.edit().putString("user_info", info).commit();
- }
- }
- Gson gson = new Gson();
- User user = gson.fromJson(response, User.class);
- //对user的变量做一些修改,然后保存
- UserUtils.saveUserInfo(gson.toJson(user));
- //下次使用的时候就可以不用访问网络资源了
- User user = gson.fromJson(UserUtils.getUserInfo(), User.class);
非常简洁的代码,就能实现一个对象数据的本地持久化缓存,而且使用起来异常灵活,非常高的可拓展性。
最后呢,给大家推荐一些非常好用的Android工具:
AsyncHttpClient、Gson
个人感觉,这两个玩意儿凑到一起,在Android平台上真的是太强大了,前者自己实现了一套异步网络资源请求,不需要自己开新线程,大家可以到它的官方网站上面看看,介绍的很详细,后者我也不多说了,总之,谁用谁知道,哈哈。
- 用Gson和SharedPreferences轻松构建android本地数据缓存
- 用Gson和SharedPreferences轻松构建android本地数据缓存
- Gson和SharedPreferences轻松构建android本地数据缓存
- 用Gson和SharedPreferences构建本地数据缓存
- Android SharedPreferences本地缓存
- Android 本地缓存开源库 Reservoir 替代SharedPreferences
- Android使用Gson和SharedPreferences存储对象
- Android利用sharedpreferences缓存对象和数组数据与文件传输
- Android利用sharedpreferences缓存对象和数组数据
- Android SharedPreferences保存/获取简单本地数据
- android保存数据到本地 SharedPreferences
- Android使用SharedPreferences来缓存数据
- SharedPreferences存储和读取本地数据
- Android中实现本地缓存,存储(SharedPreferences存储)
- Android清除本地数据缓存
- android缓存数据到本地
- 用SharedPreferences、Gson分别来保存List、Map数据
- 本地数据存储----SharedPreferences
- poj2251 Dungeon Master
- Android蓝牙应用程序开发的基本步骤
- 扑克牌顺子
- KMP【模板】
- Java开发中的23种设计模式详解(转)
- 用Gson和SharedPreferences轻松构建android本地数据缓存
- 第三次C#作业-Excel数据读取及HTML文件初步
- TASK 重新加载宿主
- Unity3D研究之2D游戏开发制作原理
- <<诫子书>> 诸葛亮
- spring @Autowired和@@Qualifier 混合使用的例子
- 三种重要哈希介绍
- 2015第17周
- java对象的复制,浅复制、深复制