我有2个不同的Android应用程序(app1和app2)。在app2中,我试图从app1的服务中获取sharedPreference的值。我使用以下代码: 在app 1的服务中:
sharedPreferences = getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove("currentKey");
editor.putString("currentKey",target);//update sharedPrerences
editor.apply();
Log.i(TAG,"value is" + sharedPreferences.getString("currentKey", null) );
在app2中:
try {
Context context = createPackageContext("com.example.packageName",0);
sharedPreferences = context.getSharedPreferences(PREFERENCES,Context.MODE_PRIVATE);
String current = sharedPreferences.getString("currentKey",null);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
两个应用在清单中具有相同的以下信息:
android:sharedUserId="com.android.example"
android:sharedUserLabel="@string/user_id_label"
在app2中,我可以获得sharedPreference的值,但问题是当app1的服务更改sharedPreference的值时,不会更新该值。不知道!如果有人遇到同样的情况,请帮助我!非常感谢!