SharePreferences 接口保存的数据主要是类似于配置信息格式的数据,简单类型的key-value对。
1.通过上下文创建:
/**
* getSharedPreferences(String name, int mode)
* name :文件名
* mode:
* 1.MODE_PRIVATE:本程序读写
* 2.MODE_WORLD_READABLE:可被其他应用程序读,不能写
* 3.MODE_WORLD_WRITEABLE:可被其他应用程序读写
*/
mSharePreference = mContext.getSharedPreferences("docment", Context.MODE_PRIVATE);
2.写:SharePreferences 接口本身没有提供写能力,通过SharePreferences.Editor处理。
mShareEditor.putInt("random", (int) (Math.random() * 100));
mShareEditor.commit();
3.读:SharePreferences .getXXX(key,default)
int random = mSharePreference.getInt("random", 0);
4.读取其他应用程序的SharePreferences
/**
* 1.packageName 包名,要得到Context的包名
* 2.flags标志位:
* CONTEXT_INCLUDE_CODE和CONTEXT_IGNORE_SECURITY两个选项。
* CONTEXT_INCLUDE_CODE:可以执行这个包里面的代码。
* CONTEXT_IGNORE_SECURITY:忽略安全警告,如果不加这个标志的话,有些功能是用不了的,会出现安全警告。
*/
try {
mRemoteContext = createPackageContext("com.sunniwell.net.text", Context.CONTEXT_IGNORE_SECURITY|CONTEXT_INCLUDE_CODE);
SharedPreferences mPreferences = mRemoteContext.getSharedPreferences("docment", Context.MODE_WORLD_READABLE);
int count = mPreferences.getInt("random", 0);
log.d("count==" + count);
} catch (NameNotFoundException e) {
e.printStackTrace();
}