Java 如何在android中设置报警管理器的一致性?

Java 如何在android中设置报警管理器的一致性?,java,android,alarmmanager,Java,Android,Alarmmanager,我通过以下方法设置报警管理器: public void setAlarmManager(Context context, Intent intent, long repeat) { PendingIntent pendingIntent; pendingIntent = PendingIntent.getService(context, 0, intent, 0); AlarmManager alarmManager = (AlarmManag

我通过以下方法设置报警管理器:

public void setAlarmManager(Context context, Intent intent, long repeat) {

        PendingIntent pendingIntent;
        pendingIntent = PendingIntent.getService(context, 0, intent, 0);

        AlarmManager alarmManager = (AlarmManager) context
                .getSystemService(context.ALARM_SERVICE);

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.SECOND, 10);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
                calendar.getTimeInMillis(), repeat, pendingIntent);
    }
通过这种方法,我会在固定时间后发送特定号码的短信。但这种方法并不一致。特别是当进入睡眠模式时,它不工作。我如何才能使这种连续性在睡眠模式下也能工作?

带有“唤醒警报”的AlarmManager仅保证在您需要时,它将保持设备处于唤醒状态使用getBroadcast PendingEvent

如果您的工作只需要几毫秒,请将您的服务切换到BroadcastReceiver

如果你的工作需要超过几毫秒,考虑一下,它提供了一个允许唤醒警报可靠地完成工作的模式。