一、SharedPreferences
保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。
是一个较轻量级的存储数据的方法,适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。
默认存储路径:/data/data/<PackageName>/shared_prefs
注意事项:
1.
SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor对象实现。
2.
SharedPreferences本身是一 个接口!!,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例
3.
getSharedPreferences(String name, int mode)
该方法中name表示要操作的xml文件名,第二个参数为设置读写模式,有以下三种选择:
- Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。
- Context.MODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。
- Context.MODE_WORLD_WRITEABLE: 指定该SharedPreferences数据能被其他应用程序读,写。
4. 读取其他应用程序的SharedPreferences
a)首先需要获取其他应用程序的上下文Context
Context pvCount = createPackageContext("com.tony.app",Context.CONTEXT_IGNORE_SECURITY);这里的com.tony.app就是其他程序的包名
b)获取该上下文环境下的SharedPreferences
SharedPreferences read = pvCount.getSharedPreferences("fristData", Context.MODE_WORLD_READABLE);
/*
flags 标志位,有CONTEXT_INCLUDE_CODE和CONTEXT_IGNORE_SECURITY两个选项。
CONTEXT_INCLUDE_CODE的意思是包括代码,也就是说可以执行这个包里面的代码。
CONTEXT_IGNORE_SECURITY的意思是忽略安全警告,如果不加这个标志的话,有些功能是用不了的,会出现安全警告。
*/
1)写操作步骤
//写操作
//step1 获取SharedPreference.Editor对象
SharedPreferences.Editor editor = getSharedPreferences("newFile", MODE_PRIVATE).edit();
//step2 写入键值对数据
editor.putString("firstData", "哈哈哈哈我是第一个数据");
//step3 提交
editor.commit();