方法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();
}
}
答案 0 :(得分:1)
onSharedPreferenceChanged()。始终在onSharedPreferenceChanged()内更改首选项值,它就像一个无限循环。