SharePreferences类
它是一个轻量级的存储类,特别适合用于保存软件配置参数。
SharePreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下
一个简单的存储实例代码:
SharePreferences sp=getSharePreferences("share",Content.MODE_PRIVATE); //私有数据
/*
方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上
方法的第二个参数指定文件的操作模式,共有四种操作模式:
1. MODE_APPEND: 追加方式存储
2. MODE_PRIVATE: 私有方式存储,其他应用无法访问
3. MODE_WORLD_READABLE: 表示当前文件可以被其他应用读取
4. MODE_WORLD_WRIEABLE : 表示当前文件可以被其他应用写入
*/
Editor editor =sp.edit(); //获取编辑器
editor.putString("name","sp");
editor.putInt("age",17);
editor.commit(); //提交数据
与之对应的获取数据的方法:
SharedPreferences share = getSharedPreferences("Activity",Activity.MODE_WORLD_READABLE);
int age= share.getInt("age",0); //没有存值或是不存在该键 默认为 0
String name = share.getString("name");
删除对应的SharedPreferences文件
File file = new File("/data/data/"+getPackageName().toString()+"/shared_prefs","share.xml");
if(file.exists()){
file.delete();
}
访问其他应用中的Preference
如果要访问其他应用中的Preference,必须满足的条件是,要访问的应用的Preference创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_READABLE
一般需要获取到你需要访问的Context,然后通过Context访问Preferences,访问preference时会在应用所在包下的shared_prefs目录找到preference:
Context otherAppsContext = createPackageContext("com.lzl",Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppsContext .getSharedPreferences("share",Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("name","");
int age = sharedPreferences.getInt("age",0);
或者通过文件的读写:
File file =new File("/data/data/<package name>/shared_prefs/share.xml");