Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我的闹钟响了;当手机锁定时,无法启动活动_Android - Fatal编程技术网

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方法,但随后会立即返回睡眠状态,因此您不会看到您的活动开始。。