我正在做一个应用程序,它监听服务中的android.intent.action.SCREEN_OFF(如果那个问题),然后它应该等待几秒钟并启动一个动作,我已经尝试了一个计时器计划方法,线程和处理程序postDelay方法,但所有这些似乎都失败了,它们永远不会在设备上执行,似乎它被锁定后被冻结/杀死。它适用于仿真器和连接到USB的设备,但从不使用仅使用电池的设备,这实际上是一个主要场景。
您知道任何解决方案吗?
答案 0 :(得分:0)
你有可能设置你的手机,以便在插入时,它实际上永远不会锁定或睡眠(它是开发人员设置之一),并想象模拟器的行为方式相同。所以你要么必须覆盖手机的锁定设置,要么改变你的方法。一般规则是当屏幕关闭时,您的活动结束。
答案 1 :(得分:0)
答案 2 :(得分:0)
部分唤醒锁保持CPU运行,因此您应该在广播接收器内获取它以进行screen_off,并在完成您所做的任何操作后将其释放。当你插入USB时,CPU会继续为USB连接提供服务(实际上,内核中的usb内容有自己的唤醒锁)。
回答你的另一个问题,是的,甚至是后台线程。一旦每个人都完成了处理screen_off广播,CPU就会关闭,并且在有人重新打开CPU之前你不会再次运行。