0

请帮我解决我的问题。我正在使用偏好片段让用户选择保持屏幕亮起或让屏幕变暗。

这在您进入偏好设置时效果很好,但是一旦您退出应用程序,它在下次启动时就不起作用了。

有趣的是,如果您打开设置屏幕并单击返回,该功能会再次起作用,直到您退出应用程序。

很想知道如何解决这个问题。

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;
        }
    });
4

0 回答 0