OnSharedPreferenceChangeListener 在具有 sharedUserID 的应用程序之间实现?

OnSharedPreferenceChangeListener implemented between apps with sharedUserID?

我在 sharedUserId 下有 App A 和 App B。在 App B 中,我想在 A 的 sharedPreferences 发生变化时获取它们。现在我可以获得应用程序 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);

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

另外 key.equals(PREFERENCES) 应该是要获取的特定首选项的名称,key.equals("key:example") 而不是共享首选项的名称。