如何为活动设置屏幕超时,然后在按下屏幕时重新打开

时间:2014-05-11 07:13:32

标签: android android-activity timeout runnable

我的活动类似于夜间时钟,用户可以更改某些偏好来编辑屏幕亮度,背景颜色,文字颜色等。

当活动禁用屏幕超时和锁屏时,因为更新屏幕上的时间的线程每秒运行一次(我可能会删除秒数并且更新频率更低以便进一步保存),最终会使用比我更多的电池我喜欢。它的全部意义就是像床头钟一样,用户可以轻松点击按钮点亮,在这种情况下,按钮就是屏幕。

我想要做的是在一段时间后关闭屏幕(在应用程序设置中的偏好)然后听屏幕按下。当用户点击屏幕时,它将重新打开屏幕直到它再次超时或者用户销毁活动,此时屏幕超时将默认为他们的手机设置。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我已经可以告诉您,无法在屏幕关闭时检测触摸事件。如果触摸产生足够的移动以便检测到,那么使用加速度计来检测运动的“解决方法”。

以编程方式打开/关闭屏幕:

PowerManager powermanager = ((PowerManager) context.getSystemService(Context.POWER_SERVICE));
wakeLock = powermanager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
wakeLock.acquire();

...

if(wakeLock.isHeld()) {
    wakeLock.release();
}