通过使用Activity的SharedPreferences实现FLAG_KEEP_SCREEN_ON

时间:2014-08-08 15:34:31

标签: java android sharedpreferences

我想让我的屏幕始终打开。这将适用于使用此代码的MainActivity.java:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

这是我的代码:

XML \的preferences.xml

<CheckBoxPreference
        android:key="prefKeepScreenOn"
        android:title="@string/prefs_screen_on"
        android:summary="@string/summ_screen_on"
        android:defaultValue="false" />

SettingsActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
}

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); // By using SharedPreferences,
                                            // this screen should never turned off.
}

如您所见,我有一个具有defaultValue =“false”的CheckBoxPreference。当值更改为“true”或选中CheckBoxPreference时,屏幕将永远不会关闭并使用此代码: getWindow()。addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

我尝试在Google中搜索有关SharedPreferences的教程,但我没有找到任何实现它的内容。我不同意SharedPreferences,因为我是新手。 我非常感谢任何想帮助我的人......

1 个答案:

答案 0 :(得分:0)

您可以在“活动”中执行此操作。

    SharedPreferences myPreference=PreferenceManager.getDefaultSharedPreferences(this);

   if(myPreference.getBoolean("prefKeepScreenOn", false)) {

       getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  }