我有一项服务可以在我的Android手机显示屏开启或关闭时检测到。关闭时,服务会调用一个活动,该活动使用dispatchKeyEvent来检测何时按下音量增大按钮。不幸的是,显然当屏幕关闭时,活动无法执行此操作。 (见this post.)
我注意到,在某种程度上某些事情正在检测到该事件,因为当屏幕关闭时按下音量增大按钮时会出现以下LogCat消息:" CatService:返回当前sInstance&#34 ;.该消息似乎是特定于设备的,因为在不同的设备上,日志中会出现不同的内容,但我真的只关心第一个设备。
我已经对CatService进行了一些研究,但是找不到多少,并且无法弄清楚我是如何能够使用它或者生成日志消息的任何东西来检测音量增加按钮按下。我很欣赏任何人都可以解决的问题。
答案 0 :(得分:2)
在屏幕关闭时继续检测此类内容的唯一方法是获取一个允许屏幕关闭的WakeLock,并让您的应用仍然运行。但是,这会耗尽电池寿命,并且只能在绝对必要时使用。
在这种情况下,您需要PARTIAL_WAKE_LOCK。