Android 来自WakefulBroadcastReceiver的连续警告消息
我使用报警管理器每5分钟获取一次触发器。 报警接收器扩展Android 来自WakefulBroadcastReceiver的连续警告消息,android,alarmmanager,android-wake-lock,Android,Alarmmanager,Android Wake Lock,我使用报警管理器每5分钟获取一次触发器。 报警接收器扩展WakefulBroadcastReceiver,并在接收到报警触发器时,通过startWakefulService(上下文,服务)启动IntentService。在服务内部的onHandleIntent(intent intent)方法中接收到意图时,应用程序执行一些所需的操作,并在该方法结束时通过调用AlarmReceiver.completeWakefulIntent(intent)释放唤醒锁 我的应用程序运行正常,但在logcat中
WakefulBroadcastReceiver
,并在接收到报警触发器时,通过startWakefulService(上下文,服务)
启动IntentService。在服务内部的onHandleIntent(intent intent)
方法中接收到意图时,应用程序执行一些所需的操作,并在该方法结束时通过调用AlarmReceiver.completeWakefulIntent(intent)
释放唤醒锁
我的应用程序运行正常,但在logcat中,我看到了WakefulBroadcastReceiver发出的警告消息
Tag: WakefulBroadcastReceiver Warning message: No active wake lock id #1
每次触发时,这些警告信息都会持续出现,#数字每次都会增加。
我想知道应用程序设置的警报是否存在一些问题,因为消息的数量正在逐渐增加。或者仅仅是因为wale锁不是由alarm manager创建的,而我的应用程序正试图通过completeWakefulIntent
将其删除。很可能startWakefulService
和onHandleIntent
是在不同的进程中执行的。在这种情况下,调用staticAlarmReceiver.completeWakefulIntent
的行为将如同它工作一样,但由于在该进程空间中找不到实际的唤醒锁,您将收到该警告消息。最有可能的是startWakefulService
和onHandleIntent
在不同的进程中执行。在这种情况下,调用staticAlarmReceiver.completeWakefulIntent
的行为将如同它工作一样,但由于在该进程空间中找不到实际的唤醒锁,因此您将收到该警告消息。请确保在android清单中正确键入了唤醒锁权限。如果您忘记或键入错误,startWakefulService将启动该服务,但随后会自动失败。在log cat中,您不会看到任何明显的突出问题
在我的例子中,Android Studio已经自动完成了“WAKE_LOCK”,作为小写的“WAKE_LOCK”。服务确实启动了,但startWakefulService从未干净地返回,我通过日志记录验证了这一点。某种例外是加薪
public class FooBroadcastReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Fpp receiver fired. Starting bar service");
Intent serviceIntent = new Intent(context, BarService.class);
startWakefulService(context, serviceIntent);
Log.d(TAG, "Started bar service"); // << never reached!
}
公共类FooBroadcastReceiver扩展WakefulBroadcastReceiver{
@凌驾
公共void onReceive(上下文、意图){
Log.d(标签“Fpp接收器启动。启动酒吧服务”);
意向serviceIntent=新意向(上下文,BarService.class);
startWakefulService(上下文、serviceIntent);
Log.d(标记为“Started bar service”);//确保您在android清单中正确键入了WAKE_LOCK权限。如果您忘记或键入错误,则StartWake FulService将启动该服务,但随后会自动失败。您不会在日志猫中看到突出显示问题的任何明显内容
在我的例子中,Android Studio已经自动完成了“WAKE_LOCK”,作为小写的“WAKE_LOCK”。该服务确实启动了,但startWakefulService从未干净地返回,我通过日志记录进行了验证。某种异常正在增加
public class FooBroadcastReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Fpp receiver fired. Starting bar service");
Intent serviceIntent = new Intent(context, BarService.class);
startWakefulService(context, serviceIntent);
Log.d(TAG, "Started bar service"); // << never reached!
}
公共类FooBroadcastReceiver扩展WakefulBroadcastReceiver{
@凌驾
公共void onReceive(上下文、意图){
Log.d(标签“Fpp接收器启动。启动酒吧服务”);
意向serviceIntent=新意向(上下文,BarService.class);
startWakefulService(上下文、serviceIntent);
Log.d(标签“启动酒吧服务”)//