区分屏幕超时和电源按钮?

时间:2010-05-04 19:14:58

标签: android android-intent

我的应用程序在屏幕变黑时执行某些操作,但我希望它只在屏幕被“自身”关闭时通过屏幕超时执行该任务 - 而不是在用户按下电源按钮时。有没有办法区分这两个事件?

ACTION_SCREEN_OFF在这两种情况下都会明显触发,我还没有找到任何其他可能与我正在寻找的意图相符的意图。

4 个答案:

答案 0 :(得分:4)

在较低级别,当屏幕超时时会发生一个事件,看看“adb logcat”,你会看到它,从那里挖掘。

答案 1 :(得分:1)

服务无法直接处理按钮事件。也许你可以让你的活动注册一个广播接收器,以便在屏幕关闭时收到通知,然后让活动检查最后一个按键,看它是否是电源按钮 - 如果不是那么你可以发送一个广播到您的服务,让它运行任何你想要的。

答案 2 :(得分:1)

这是一个有趣的问题:)尽管不准确,但您可以尝试对用户上次触摸事件以及您的活动暂停时间进行抽样 - 并查看它是否适合screen off timeout

答案 3 :(得分:0)

你能听一下KEYCODE_POWER键盘事件吗?这可能会做你想要的。 (但可能无法保证和ACTION_SCREEN_OFF到达的顺序。)