我正在两个应用程序之间共享数据,这是我的代码,用于从应用程序中的共享首选项获取数据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/