小编use*_*087的帖子

不同应用程序的Android共享首选项

我一直在开发一个Android应用程序,它通过共享首选项文件与设备上安装的其他应用程序进行交互.

此文件创建为MODE.WORLD_READABLE,并且每个已安装的应用程序都有自己的文件,该文件具有公共定义的名称和属性(该特定属性的值的更改).

例如,AppA和AppB应该每个都有一个名为"app_shared_file.xml"的共享文件,其属性为"property_shared_file".

从我的应用程序,我想首先访问此文件并读取该属性值,并根据该结果我想创建/更新我的.

尽管如此,我在实现这一目标方面遇到了一些问题.在Android文档中,我看到:

检索并保存首选项文件"name"的内容,返回SharedPreferences,您可以通过它来检索和修改其值.只有一个SharedPreferences对象实例返回给任何相同名称的调用者,这意味着他们一旦完成就会看到彼此的编辑.

在阅读其他应用程序共享首选项文件后,当我尝试创建/更新我的系统而不是编辑我的时候正在使用我之前读过的那个.如果相反,我开始更新我的并稍后阅读其他应用程序 - 而不是阅读另一个应用程序,正在访问的是我的.

有什么想法吗?

我用来读取共享pref的代码是[其中packageName是另一个app pckg]:

Context con = context.createPackageContext(packageName, Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences pref = con.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_WORLD_READABLE);
pref.getBoolean(SHARED_PREF_PROP, false);
Run Code Online (Sandbox Code Playgroud)

我用于在app shared pref中编写的代码是:

SharedPreferences prefs= getSharedPreferences(SHARED_PREF_NAME, context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(SHARED_PREF_PROP, value); 
editor.commit();
Run Code Online (Sandbox Code Playgroud)

提前致谢.

android sharedpreferences

9
推荐指数
1
解决办法
8901
查看次数

标签 统计

android ×1

sharedpreferences ×1