请帮我解决我的问题。我使用偏好片段让用户选择保持屏幕亮起或让屏幕变暗。
当您进入偏好设置时,此功能很有效,但退出应用后,它无法在下次启动时使用。
很有趣,如果您打开设置屏幕并单击后退,该功能将再次有效,直到退出应用程序。
很想知道如何解决这个问题。
private void setInitialState() {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
pm = (PowerManager) getActivity().getSystemService(Context.POWER_SERVICE);
if (sp.getBoolean(getString(R.string.keep_screen_on_key), false)) {
startKeepScreenOn();
} else {
dsSwitch.setEnabled(false);
}
}
ksoSwitch = (SwitchPreference)
findPreference(getString(R.string.keep_screen_on_key));
dsSwitch = (SwitchPreference) findPreference(getString(R.string.dim_screen_key));
setInitialState();
ksoSwitch.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (newValue.equals(true)) {
dsSwitch.setEnabled(true);
startKeepScreenOn();
}
else {
dsSwitch.setEnabled(false);
wl.release();
wl = null;
}
return true;
}
});
dsSwitch.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
wl.release();
startKeepScreenOn();
return true;
}
});