SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。(如:Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出)
一、操作模式:
SharedPreferences sharedProferences=getSharedPreferences("存储名称", Context.MODE_PRIVATE);
1、Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容;
2、Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.;
3、MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.;
4、MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入;
注:出于安全性的考虑,MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 在Android 4.2版本中已经被弃用。
二、数据读取
SharedPreferences 可以用来进行数据的共享,包括应用程序之间,或者同一个应用程序中的不同组件。比如两个activity除了通过Intent传递数据之外,也可以通过SharedPreferences来共享数据。
判断是否已经存在:
boolean isRemember=sharedProferences.getBoolean("rememberpass",false);
获取到作用域是本应用程序的preference:
getSharedPreferences()
1、存:
SharedPreferences.Editor editor=sharedProferences.edit();
editor.putString("标题","保存内容");
editor.putBoolean("标题",状态);
editor.commit();//提交
2、取:
String data = SharedPreferences.getString("标题", “”);
3、清空数据
SharedPreferences.Editor editor=sharedProferences.edit();
editor.clear();
注:1、sharedpreference对象只能获取数据,不支持修改。2、此类不支持多线程。3、只能存储String/int/long/Float/Boolean几种类型的数据。
三、读取该应用程序的SharedPreferences
- // 获取其他应用程序的Context
- Context otherContext = createPackageContext("包名",CONTEXT_IGNORE_SECURITY);
- // 获取其他应用程序的SharedPreferences
- SharedPreferences preferences = otherContext.getSharedPreferences("存储名",Context.MODE_WORLD_READABLE);