在Android中,可以看到屏幕超时设置为30秒,或者由用户在系统设置中手动设置,以免浪费电池。但是在某些情况下,秒表,文档阅读器应用程序,游戏等应用程序需要屏幕始终处于唤醒状态。在本文中已对其进行了演示,如何使设备屏幕保持清醒。
保持设备屏幕打开的步骤
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。
步骤2:更改应用程序基本主题的颜色组合
- 更改基本应用程序主题颜色,请转到应用程序-> res->值-> colors.xml ,然后调用以下颜色组合。
XML
#0f9d58
#006d2d
#55cf86
XML
XML
Java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// setting up the flag programmatically so that the
// device screen should be always on
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}
- 如果尚未获得colors.xml文件,请参考下图:
步骤3:使用activity_main.xml文件
在activity_main.xml文件中,添加TextViews以使该应用程序类似于文档读取应用程序。
XML格式
产生以下输出UI:
步骤4:继续保持装置萤幕不动
有两种方法可以使屏幕始终保持清醒状态。
方法1:将“ keepScreenOn”调用为true
通过在应用程序的根视图中调用以下属性,可以使设备屏幕保持唤醒状态。
android:keepScreenOn = “true”
您可以查看以下activity_main.xml代码:
XML格式
方法2:以编程方式保持屏幕显示
现在,您可以从activity_main.xml文件中删除属性android:keepScreenOn =“ true” ,并保留所有代码不变,并在MainActivity中调用以下代码。 Java文件。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
完整的代码如下。
Java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// setting up the flag programmatically so that the
// device screen should be always on
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}
输出
输出结果如下图所示 (建议在物理android设备上测试此应用程序,以便无论应用程序屏幕是否醒着都可以看到结果),并且两种方法的输出都将保持不变:
推荐哪种方法?
两种方法都相同,可以使用任何一种感觉更好的方法,但建议以编程方式实施,因为在复杂的android应用程序中,开发人员在特定活动中设置了许多标志,并且很容易获得所有标志并手动禁用和管理他们。