Метод onSharedPreferenceChanged входит в бесконечный цикл? - PullRequest
0 голосов
/ 19 марта 2019

Метод 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 Ответ

1 голос
/ 19 марта 2019

onSharedPreferenceChanged () вызывается при изменении значения предпочтения. Вы всегда изменяете значение предпочтения внутри onSharedPreferenceChanged (), и оно работает как бесконечный цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...