0
点赞
收藏
分享

微信扫一扫

Android开发——存储

伊人幽梦 2022-05-03 阅读 85
android

一、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();
举报

相关推荐

0 条评论