Android 使用sharedpreferences、ACache缓存用户名和密码

最近的Android项目上面需要用到缓存,所以查了一下缓存数据的方法,下面是介绍:

1、sharedpreferences

这个是学Android的朋友都会接触到的持久化技术,我是通过《第一行代码》学习的,有兴趣的朋友可以自行翻阅此书进行更全面的学习。

以下引用百度百科上的介绍:SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。

SharedPreferences 文件是使用 XML 格式来对数据进行管理的 ,这很容易看出来,因为存储的时候,就是通过键值对的方式进行数据存储的,看看下面的代码就能知道,这个存储机制是非常方便的,因为这个类上的方法会判断输入的值是何种类型,进而自动保存成那种类型的数据,为了展示方便,我直接上《第一行代码》上的源码:

  1. SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();  
  2. editor.putString("name""Andy");  
  3. editor.putInt("age"22);  
  4. editor.putBoolean("married"false);  
  5. editor.commit();  
SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name", "Andy");
editor.putInt("age", 22);
editor.putBoolean("married", false);
editor.commit();
这样就算是存储完成了,读取也是非常简单的:
  1. SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);  
  2. String name = pref.getString("name""");  
  3. int age = pref.getInt("age"0);  
  4. boolean married = pref.getBoolean("married"false);  
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的优势和用法吧:

优势:

扫描二维码关注公众号,回复: 3847067 查看本文章

SharedPreferences只能保存一些基本数据类型、Serializable、Bundle等数据,
而Acache可以缓存如下数据:
普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的Java对象,和 byte数据。

使用方法,超简单,我缓存的是JsonObject数据:

  1. ACache mCache = ACache.get(this);  
  2. JSONObject jsonObject = new JSONObject();  
  3. try {  
  4.     //封装json数据  
  5.     jsonObject.put("userName", strName);  
  6.     jsonObject.put("userPad", strPsd);  
  7. catch (Exception e) {  
  8. }  
  9. mCache.put("user", 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);
读取数据也是非常简单:

  1. ACache mCache = ACache.get(this);  
  2. JSONObject jsonObject = mCache.getAsJSONObject("user");  
ACache mCache = ACache.get(this);
JSONObject jsonObject = mCache.getAsJSONObject("user");

不过值得注意的是,读取缓存的Json数据的时候,如果缓存中并没有找到相应的数据,是会返回一个null的,也就是说JSONObject的值为null,这个时候就不要去读取JSONObject里面的值了,会出错的,建议的方法是读取JSONObject里面的值之前先判断一下JSONObject是否为空。

好了,使用sharedpreferences、ACache缓存用户名和密码的方法就介绍到这里,午安。

最近的Android项目上面需要用到缓存,所以查了一下缓存数据的方法,下面是介绍:

1、sharedpreferences

这个是学Android的朋友都会接触到的持久化技术,我是通过《第一行代码》学习的,有兴趣的朋友可以自行翻阅此书进行更全面的学习。

以下引用百度百科上的介绍:SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。

SharedPreferences 文件是使用 XML 格式来对数据进行管理的 ,这很容易看出来,因为存储的时候,就是通过键值对的方式进行数据存储的,看看下面的代码就能知道,这个存储机制是非常方便的,因为这个类上的方法会判断输入的值是何种类型,进而自动保存成那种类型的数据,为了展示方便,我直接上《第一行代码》上的源码:

  1. SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();  
  2. editor.putString("name""Andy");  
  3. editor.putInt("age"22);  
  4. editor.putBoolean("married"false);  
  5. editor.commit();  
SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name", "Andy");
editor.putInt("age", 22);
editor.putBoolean("married", false);
editor.commit();
这样就算是存储完成了,读取也是非常简单的:
  1. SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);  
  2. String name = pref.getString("name""");  
  3. int age = pref.getInt("age"0);  
  4. boolean married = pref.getBoolean("married"false);  
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数据:

  1. ACache mCache = ACache.get(this);  
  2. JSONObject jsonObject = new JSONObject();  
  3. try {  
  4.     //封装json数据  
  5.     jsonObject.put("userName", strName);  
  6.     jsonObject.put("userPad", strPsd);  
  7. catch (Exception e) {  
  8. }  
  9. mCache.put("user", 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);
读取数据也是非常简单:

  1. ACache mCache = ACache.get(this);  
  2. JSONObject jsonObject = mCache.getAsJSONObject("user");  
ACache mCache = ACache.get(this);
JSONObject jsonObject = mCache.getAsJSONObject("user");

不过值得注意的是,读取缓存的Json数据的时候,如果缓存中并没有找到相应的数据,是会返回一个null的,也就是说JSONObject的值为null,这个时候就不要去读取JSONObject里面的值了,会出错的,建议的方法是读取JSONObject里面的值之前先判断一下JSONObject是否为空。

好了,使用sharedpreferences、ACache缓存用户名和密码的方法就介绍到这里,午安。

猜你喜欢

转载自blog.csdn.net/li7032/article/details/76021290