如何仅在用户/电话处于活动状态时运行服务?

时间:2012-04-07 11:58:20

标签: android

我想仅在用户处于活动状态或更一般时才运行Service:当手机处于活动状态时。屏幕关闭时无需运行服务。但是一旦用户解锁他的手机,我希望该服务再次运行。

我如何实现这种行为?

我的实际任务:我想捕获logcat。因此,我创建了一个Service,它产生一个读取“logcat”进程输出的线程。

当手机上锁时,后台线程的行为究竟如何?它没有任何唤醒锁或东西。当手机进入睡眠状态时Android会暂停线程还是该线程会让Android无法入睡?手机唤醒后如何恢复?

我还想过通过'AlarmManager'注册一个警报,每15分钟触发一次并解析logcat。但是通过这种方法,我可能会错过一些logcat线。

1 个答案:

答案 0 :(得分:1)

重新启动服务:您可以为ACTION_USER_PRESENTACTION_SCREEN_ON注册接收方:当用户在场时(当手机处于活动状态时)系统发送此意图设备唤醒(例如当键盘消失时)。或者当手机屏幕亮起时。

停止服务:使用ACTION_SCREEN_OFF意图当用户不在或移动屏幕关闭时,此意图由deivce发送