我想仅在用户处于活动状态或更一般时才运行Service
:当手机处于活动状态时。屏幕关闭时无需运行服务。但是一旦用户解锁他的手机,我希望该服务再次运行。
我如何实现这种行为?
我的实际任务:我想捕获logcat。因此,我创建了一个Service
,它产生一个读取“logcat”进程输出的线程。
当手机上锁时,后台线程的行为究竟如何?它没有任何唤醒锁或东西。当手机进入睡眠状态时Android会暂停线程还是该线程会让Android无法入睡?手机唤醒后如何恢复?
我还想过通过'AlarmManager'注册一个警报,每15分钟触发一次并解析logcat。但是通过这种方法,我可能会错过一些logcat线。
答案 0 :(得分:1)
重新启动服务:您可以为ACTION_USER_PRESENT
或ACTION_SCREEN_ON
注册接收方:当用户在场时(当手机处于活动状态时)系统发送此意图设备唤醒(例如当键盘消失时)。或者当手机屏幕亮起时。
停止服务:使用ACTION_SCREEN_OFF
意图当用户不在或移动屏幕关闭时,此意图由deivce发送