最近的Android项目上面需要用到缓存,所以查了一下缓存数据的方法,下面是介绍:
1、sharedpreferences
这个是学Android的朋友都会接触到的持久化技术,我是通过《第一行代码》学习的,有兴趣的朋友可以自行翻阅此书进行更全面的学习。
以下引用百度百科上的介绍:SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。
SharedPreferences 文件是使用 XML 格式来对数据进行管理的 ,这很容易看出来,因为存储的时候,就是通过键值对的方式进行数据存储的,看看下面的代码就能知道,这个存储机制是非常方便的,因为这个类上的方法会判断输入的值是何种类型,进而自动保存成那种类型的数据,为了展示方便,我直接上《第一行代码》上的源码:
SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name", "Andy");
editor.putInt("age", 22);
editor.putBoolean("married", false);
editor.commit();
这样就算是存储完成了,读取也是非常简单的:
SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);
String name = pref.getString("name", "");
int age = pref.getInt("age", 0);
boolean married = pref.getBoolean("married", false);
如果读取不成功(没有缓存此数据),那么就会返回传入的默认值,使用这个技术缓存用户名和密码,只需要在app开启的时候,自动去读取缓存好的用户名密码,然后写到界面中即可,非常方便。
2、ACache(ASimpleCache)
这是一个轻量级的缓存框架,以至于你只需要导入一个java文件就可以轻松使用里面的缓存功能。关于这个框架的资源和介绍,网上真的是一大堆,我这里的介绍只不过是粗略简介,很多人的博客上面都会介绍,而且大家的介绍都是一模一样的,都写着原创,都已经不知道谁才是真正的原创了,只有一点是确定的,这个框架是杨福海做的,大家有兴趣可以去关注下这个人,我这里就只说一下这个框架对比sharedpreferences的优势和用法吧:
优势:
SharedPreferences只能保存一些基本数据类型、Serializable、Bundle等数据,
而Acache可以缓存如下数据:
普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的Java对象,和 byte数据。
使用方法,超简单,我缓存的是JsonObject数据:
ACache mCache = ACache.get(this);
JSONObject jsonObject = new JSONObject();
try {
//封装json数据
jsonObject.put("userName", strName);
jsonObject.put("userPad", strPsd);
} catch (Exception e) {
}
mCache.put("user", jsonObject);
读取数据也是非常简单:
ACache mCache = ACache.get(this);
JSONObject jsonObject = mCache.getAsJSONObject("user");
不过值得注意的是,读取缓存的Json数据的时候,如果缓存中并没有找到相应的数据,是会返回一个null的,也就是说JSONObject的值为null,这个时候就不要去读取JSONObject里面的值了,会出错的,建议的方法是读取JSONObject里面的值之前先判断一下JSONObject是否为空。
好了,使用sharedpreferences、ACache缓存用户名和密码的方法就介绍到这里,午安。