Android 侦听SharedPreferences更改

示例

SharedPreferences sharedPreferences = ...;
sharedPreferences.registerOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);


private finalSharedPreferences.OnSharedPreferenceChangeListenermOnSharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        //TODO
    }
}

请注意:

  • 仅当添加或更改值时,侦听器才会触发,设置相同的值将不会调用它;

  • 侦听器需要保存在成员变量中,而不是匿名类,因为registerOnSharedPreferenceChangeListener它使用弱引用进行存储,因此将被垃圾回收;

  • 除了使用成员变量,它也可以由类直接实现,然后调用 registerOnSharedPreferenceChangeListener(this);

  • 当不再需要使用时,请记住注销该侦听器unregisterOnSharedPreferenceChangeListener。