onSharedPreferenceChanged方法进入无休止的循环?

时间:2019-03-19 04:06:42

标签: java android sharedpreferences

方法onSharedPreferenceChanged进入无限循环。我不明白为什么更改首选项会导致事件再次触发。

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        if(key.equals("theme")){
            Log.d("THEME", sharedPreferences.getBoolean("theme", false) ? "true" : "false");
            boolean isDark = sharedPreferences.getBoolean("theme", false);
            if(isDark)
                sharedPreferences.edit().putBoolean("theme", false).apply();
            else
                sharedPreferences.edit().putBoolean("theme", true).apply();
        }
    }

1 个答案:

答案 0 :(得分:1)

更改首选项值时会调用

onSharedPreferenceChanged()。始终在onSharedPreferenceChanged()内更改首选项值,它就像一个无限循环。