Android 我的闹钟响了;当手机锁定时,无法启动活动
我尝试在我的应用程序中使用闹钟,但当手机锁定时,活动不会像标准闹钟那样启动。我能为解决这个问题做些什么Android 我的闹钟响了;当手机锁定时,无法启动活动,android,Android,我尝试在我的应用程序中使用闹钟,但当手机锁定时,活动不会像标准闹钟那样启动。我能为解决这个问题做些什么 Calendar cal = Calendar.getInstance(); cal.add(Calendar.SECOND, 5); Intent intent = new Intent(this, AlarmReceiverActivity.class); PendingIntent pendingIntent = PendingIntent.getAct
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 5);
Intent intent = new Intent(this, AlarmReceiverActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this,
12345, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am =
(AlarmManager)getSystemService(Activity.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
pendingIntent);
在这种情况下,这是“正常”行为
要克服它,您需要获得CPU的唤醒锁
只要报警接收器的onReceive()方法正在执行,报警管理器就会保持CPU唤醒锁。这保证了在您处理完广播之前,手机不会休眠。一旦onReceive()返回,报警管理器将释放此唤醒锁这意味着在某些情况下,一旦onReceive()方法完成,手机将立即进入睡眠状态。如果您的闹钟接收器调用了Context.startService(),则手机可能会在启动请求的服务之前进入睡眠状态。为了防止出现这种情况,您的BroadcastReceiver和服务需要实施单独的唤醒锁定策略,以确保手机继续运行,直到服务可用
这是来自:
类似问题:
这就是您需要的:
1。记录你的代码。2.检查此(活动)值。阅读下面的答案…实际发生的情况是,手机会在短时间内唤醒以处理alarm manager的onReceive方法,但随后会立即返回睡眠状态,因此您不会看到您的活动开始。。