Java ANDROID:AlarmManager、PowerManager.WakeLock和异步调用?

Java ANDROID:AlarmManager、PowerManager.WakeLock和异步调用?,java,android,android-intent,asynchronous,Java,Android,Android Intent,Asynchronous,我有一个名为AlarmHandlerAndReceiver(extends BroadcastReceiver)的类,它有一个设置AlarmManager的方法,另一个用于取消AlarmManager,另一个用于重新安排AlarmManager并确保onReceive 当onReceive发生时,我获取一个PowerManager.WakeLock,向应用程序服务发送一个意向,然后我重新安排Arm,然后释放PowerManager.WakeLock 这意味着我希望以周期性的方式(比如从一分钟到一

我有一个名为AlarmHandlerAndReceiver(extends BroadcastReceiver)的类,它有一个设置AlarmManager的方法,另一个用于取消AlarmManager,另一个用于重新安排AlarmManager并确保onReceive

当onReceive发生时,我获取一个PowerManager.WakeLock,向应用程序服务发送一个意向,然后我重新安排Arm,然后释放PowerManager.WakeLock

这意味着我希望以周期性的方式(比如从一分钟到一分钟)在服务中执行take(intent)

所以我的问题是:

当onreceive发生时,我使用PowerManager.WakeLock以避免设备进入睡眠状态,从而可以重新安排报警时间。 但是,任务调用(在服务上)是异步的(Intent),同时在AlarmHandlerAndReceiver类中释放PowerManager.WakeLock

如果服务任务仍在运行且设备处于休眠状态,会发生什么情况? 需要保护这个吗?我是否应该(通过应用程序类)进行同步任务调用

非常感谢


Alex

您应该使用WakefulBroadcastReceiver,它可以为您处理所有这些。太棒了!我错过了那个功能