Android 数据持久化之SharedPreferences
SharedPreferences的数据持久化方式存储的数据类型比文件存储要多,存进去是什么类型,取出来就是什么类型,且存取的操作比文件存储方式简便。
1.得到SharedPreferences对象的三种方法
1.Context类中的getSharedPreferences方法
2.Activity中的getPreferences方法
3.PreferenceManager中的getDefaultSharedPreferences方法
2.数据存储的流程
1.调用SharedPreferences的edit方法来获取一个SharedPreferences.Editor editor对象
2.调用putString来进行键值对的赋值
3.调用apply方法来进行最后的数据提交
3.数据存储方法是实现事例
存储的方法十分的简单,只有三行代码
/**
* 保存登录状态
* @param context
* @param userName
*/
public static void saveLoginStatic(Context context,String userName,String password){
SharedPreferences sharedPreferences =context.getSharedPreferences("login_data",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("userName",userName);
editor.putString("password",password);
editor.apply();
}
4.数据的获取
获取就更简单,只有两行代码
/**
* 获取登录用户信息
* @param context
* @return
*/
public static LoginUser getLoginInfo(Context context){
SharedPreferences sharedPreferences = context.getSharedPreferences("login_data",MODE_PRIVATE);
String userName = sharedPreferences.getString("userName","");
String password = sharedPreferences.getString("password","");
LoginUser user = new LoginUser();
user.setUserName(userName);
user.setPassword(password);
return user;
}
5.数据的删除
/**
* 清除登录数据
* @param context
*/
public static void cleanLoginData(Context context){
SharedPreferences sharedPreferences = context.getSharedPreferences("login_data",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
}
所以鉴于自己练习的时候,使用这种方法去存储简单的应用状态,如记录登录的状态和登录的时候记住账号密码等等操作。