我不想使用WakeLock。
有没有一种简单的方法可以使用FLAG_KEEP_SCREEN_ON
答案 0 :(得分:2)
如果您在此处阅读文档:docs
比你看到你不需要照顾这个。 但你可以,见:
注意:除非您,否则无需清除FLAG_KEEP_SCREEN_ON标志 不再希望屏幕保持在正在运行的应用程序中(对于 例如,如果您希望屏幕在一段时间后超时 活动)。窗口管理器负责确保正确 当应用程序进入后台或返回时,会发生一些事情 前景。但是,如果你想明确地清除标志,从而 允许屏幕再次关闭,使用clearFlags(): getWindow()。clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)。
您可以将其与Handler上的Runnable,post delayed结合使用, 这是Android的方式,或使用TimerTask,这将是 更多Java方式。
示例:
final long FIVE_MINUTES = 1000*60*5;
Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
};
handler.postDelayed(r, FIVE_MINUTES);
希望它有所帮助。