假设我使用BroadcastReceiver接收事件(意图),即使手机处于深度睡眠模式(例如套接字上的传入数据包或传入的短信),它也会被唤醒。然后,我将接收到的数据转发到IntentService进行处理。我应该使用WakeLock吗?
如果我不使用WakeLock,我可以确定设备不会进入睡眠模式,直到我的服务的意图队列为空(因此服务已停止)吗? (假设处理可能需要很长时间。)
如果需要WakeLock,则何时何地应创建和获取它,并在何时释放它?我想在服务的意图队列为空后立即释放WakeLock。
提前感谢您。
如果我不使用WakeLock,我可以确定设备不会进入睡眠模式,直到我的服务的意图队列为空(因此服务已停止)吗? (假设处理可能需要很长时间。)
如果需要WakeLock,则何时何地应创建和获取它,并在何时释放它?我想在服务的意图队列为空后立即释放WakeLock。
提前感谢您。
WakefulIntentService
中封装了这个模式:https://github.com/commonsguy/cwac-wakeful - CommonsWareWakeLock
,您无需执行acquire(1000)
技巧。 - CommonsWare