我一直在阅读有关从广播接收器启动服务的信息。在这种情况下,我必须获取一个 WakeLock,直到 Intent 由 IntentService 处理。
当我直接从包装到 pendingIntent 中的 AlarmManager 调用 IntentService 时会怎样?在这种情况下,没有广播接收器...意图直接转发到服务的 onHandleIntent。那么,我在哪里获得锁呢?真的需要吗???一切似乎都很好。
我一直在阅读有关从广播接收器启动服务的信息。在这种情况下,我必须获取一个 WakeLock,直到 Intent 由 IntentService 处理。
当我直接从包装到 pendingIntent 中的 AlarmManager 调用 IntentService 时会怎样?在这种情况下,没有广播接收器...意图直接转发到服务的 onHandleIntent。那么,我在哪里获得锁呢?真的需要吗???一切似乎都很好。
AnIntentService
只是一个线程服务。您将需要获取唤醒锁。Commonsguy 在WakefulIntentService
这里很可爱。
他的 IntentService 为您获取了一个唤醒锁,因此如果您从 AlarmService 调用它,它将唤醒获取唤醒并在工作完成后释放它。
我已经使用它分配了,效果很好,并且源在 Github 上,所以你可以看到它是如何工作的。