我正在做一个应用程序,它侦听服务中的android.intent.action.SCREEN_OFF(如果有的话),然后它应该等待几秒钟并启动一个动作,我已经尝试了一个计时器计划方法,线程和处理程序postDelay方法,但它们都似乎失败了,它们从未在设备上执行,它似乎在手机被锁定后被冻结/死亡。它适用于仿真器和连接到USB的设备,但从不使用仅使用电池的设备,这实际上是主要场景。Android中的SCREEN_OFF后的线程问题
你知道这个解决方案吗?
我正在做一个应用程序,它侦听服务中的android.intent.action.SCREEN_OFF(如果有的话),然后它应该等待几秒钟并启动一个动作,我已经尝试了一个计时器计划方法,线程和处理程序postDelay方法,但它们都似乎失败了,它们从未在设备上执行,它似乎在手机被锁定后被冻结/死亡。它适用于仿真器和连接到USB的设备,但从不使用仅使用电池的设备,这实际上是主要场景。Android中的SCREEN_OFF后的线程问题
你知道这个解决方案吗?
您有机会设置电话机,以便在插入电话机时,它实际上不会锁定或休眠(其开发人员设置之一),并假设仿真程序的行为方式相同。因此您必须覆盖手机的锁定设置或更改您的方法。一般规则是当屏幕关闭时,您的活动结束。
包括后台线程吗? – michael 2010-06-13 09:52:26
部分唤醒锁使CPU保持运行,因此您应该在广播接收器中获取screen_off,并在您完成任何操作后释放它。当你插入USB时,CPU将继续为USB连接提供服务(实际上,内核中的USB存储器拥有自己的唤醒锁)。
并回答你的其他问题,是的,甚至后台线程。只要每个人都处理完screen_off广播,CPU就会关闭,并且在有人重新启动CPU之前不会再运行。
其实我觉得我在用WakeLock做错了什么。它似乎没有工作,我在screen_off动作发送后获得它,所以实际上系统已经关闭了,这是否是一个原因? – michael 2010-06-13 19:45:20