使用sharedUserID在应用程序之间实现OnSharedPreferenceChangeListener?

时间:2017-11-15 00:52:08

标签: android sharedpreferences android-sharedpreferences

我在sharedUserId下有App A和App B.在App B中,我希望在它们发生变化时获得A的sharedPreferences。现在我可以获得app A的sharedPreferences,但只能重新编译。这可能吗?

这是我在应用B中尝试的一个例子:

// get Context of Shared App
     sharedContext = this.createPackageContext("com.app.A",Context.CONTEXT_IGNORE_SECURITY);
// get desired preferences from app A
     myPrefs = sharedContext.getSharedPreferences(PREFERENCES,Context.MODE_PRIVATE);
// keeping local copy of this listener
     listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
     public void onSharedPreferenceChanged(SharedPreferences myPrefs, String key) {
          if (key.equals(PREFERENCES)) {
                       // Do something
               Log.d("Test", "preferences were updated");
               }
          }
     };
// register listener
myPrefs.registerOnSharedPreferenceChangeListener(listener);

1 个答案:

答案 0 :(得分:0)

在每个应用的清单中设置android:process

同样key.equals(PREFERENCES)应该是抓取的特定首选项的名称,key.equals("key:example")而不是共享首选项的名称。