当前位置:   article > 正文

Android学习之路------sharepreference_android两个sharepreference名称一样

android两个sharepreference名称一样

简单介绍

sharepreference通常用于储存一些简单的信息,比如不考虑安全性的话,我们可以储存密码,也可以储存比如开机时间,或者一些我们设定的信息。利用sharepreference我们可以很方便的进行数据的读写

常见用法

获得sharedPreferences对象

SharedPreferences pref = getSharedPreferences("example",Context.MODE_PRIVATE);
  • 1

MODE_PRIVATE:表示这个xml是这个app私有的,其他应用无法获取这个应用的xml文件
MODE_MULTI_PROCESS:能在多个应用间多个进程间互相访问数据
MODE_WORLD_READABLE:可以被其它应该程序读取。
MODE_WORLD_WRITEABLE:可以被其它应该程序读取和写入

数据的获取

SharedPreferences pref = getSharedPreferences("example",Context.MODE_PRIVATE);
int inter = pref.getInt("example_int",1);
String str =pref.getString("example_string","default_string");
  • 1
  • 2
  • 3

得到数据的方法的第一个参数是key,第二个是我们设置的默认值,如果xml里面没有这个key,我们就会得到默认值

数据的写入

SharedPreferences pref = getSharedPreferences("example",Context.MODE_PRIVATE);
Editor edit = pref.edit();
edit.putInt("example_int",5);
edit.putString("example_string","hello world");
edit.commit();//提交
  • 1
  • 2
  • 3
  • 4
  • 5

如何获取其他应用的共享数据

首先我们要保证我们要获取的xml文件在创建时具有被其他应用访问的权限,因此在创建时我们需要将操作模式改为MODE_MULTI_PROCESS:

SharedPreferences pref = getSharedPreferences("example",Context.MODE_MULTI_PROCESS);
  • 1

其次要创建要获得的应用的context:

Context conetxt = createPackageContext("com.example.set",Context.CONTEXT_IGNORE_SECURITY); //这里编辑器可能会让我们加上try catch捕获异常

SharedPreferences pref = context.getSharedPreferences("example", Context.MODE_MULTI_PROCESS);

int inter = pref.getInt("example_int",1);
String str =pref.getString("example_string","default_string");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

常见问题

当我们是普通应用时获取其他应用的sharepreference,使用上面的代码是没有问题的,但是当我们的应用时系统级应用时,由于进程不同,可以会出现权限不够的现象,常见的比如:

Attempt to read preferences file  /data/data/...............xml without permission
  • 1

因此我们需要给两个应用设置相同的android:sharedUserId

android:sharedUserId="example"
  • 1

这句话代表将两个应用加入到同一个进程中,如果是系统进程,可以设置为

android:sharedUserId="android.uid.system"
  • 1

这样两个应用都运行在系统进程中了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/308833
推荐阅读
相关标签
  

闽ICP备14008679号