SharedPreferences.OnSharedPreferenceChangeListener 是否可以让多个活动收听

Is it possible to have multiple activities listen with SharedPreferences.OnSharedPreferenceChangeListener

我有两个活动,我的 MainActivity 和我的 SettingsActivity(实例化 PreferenceFragment

我想做这两项活动:

final SharedPreferences mPrefs = 
        getSharedPreferences(getString(R.string.shared_prefs), 
                             Context.MODE_PRIVATE);
mPrefs.registerOnSharedPreferenceChangeListener(mListener);

其中每个都有自己的 mListener (a SharedPreferences.OnSharedPreferenceChangeListener) 实现。

我看到的是 OnSharedPreferenceChangeListener 中只有一个被触发。

有什么想法吗?

是的,可以同时拥有多个侦听器,如下所示:

https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/android/app/SharedPreferencesImpl.java#186

您的问题可能出在其他地方。

您可以使用 Application class 的基础实例代替当前 Activity 来存储您的监听器。 这真的取决于你想做什么。