java - 使用 SharedPreferences 在两个应用程序之间共享数据

标签 java android sharedpreferences

我正在两个应用程序之间共享数据,这是我的代码,用于从应用程序中的共享首选项获取数据A

    try {
        final Context mContext = createPackageContext("com.example.demo", Context.MODE_PRIVATE);
        final String val = mContext.getSharedPreferences("pref_name",Context.MODE_PRIVATE).getString(MY_KEY,"");
        Log.e("sharedtest",val);
        finish();
    } catch (Exception e) {
        e.printStackTrace();
    }

此代码位于 onCreate() 方法内,我在任何地方都没有更多代码。我的问题是,如果我在应用程序 B 中保存某些值,然后启动应用程序 A,则在检索我的 Activity 即将完成的数据后,第一次正确检索保存的数据(我只有一个 Activity ),并且如果我启动启动器图标并启动应用程序 A,则没有更新的数据(相同),这些数据是从应用程序 B 更改的。

此外,如果我从系统应用程序设置中杀死我的应用程序并像首次启动更新数据一样启动它,则每次数据更改都需要从设置中杀死我的应用程序,我该如何解决这个问题?我缺少什么?

最佳答案

我找到了解决方案,这可能是一个技巧,但对我来说效果很好, 在我的应用 A 完成其工作后,我将调用系统退出方法。

 System.exit(1); 

它使应用程序“A”退出并完全完成工作

之后我的偏好设置中就有了最新更新的数据

关于java - 使用 SharedPreferences 在两个应用程序之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42361230/

相关文章:

android - 无法更新 FragmentPagerAdapter 中的 fragment

java - Android - gson.toJson 在 ArrayList<OverlayItem> 上抛出 StackOverFlowError

java - 如何使用共享首选项保存 ListView

Android:无法从 settings.xml 获取首选项值

java - Android 更新新版本后重新启动应用程序

java - 程序可以编译,但无法运行

java - 将不同类类型的对象作为 java 中映射中的值进行处理

java - Coherence 配置默认覆盖路径

从浏览器访问 Intranet 站点时需要 Java 身份验证对话框

java - 膨胀布局的 child 不显示