我正在通过这种方法设置闹钟管理器:
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);
}
通过这种方法,我会在一段固定的时间后发送一个特定数字的短信。但是这种方法不能保持一致。特别是当进入睡眠模式时,它不起作用。我可以继续这样做它也可以在睡眠模式下工作吗?
答案 0 :(得分:0)
AlarmManager
警报的 _WAKEUP
仅保证如果您使用getBroadcast()
PendingIntent
,它会保持设备清醒。
如果您的工作只需要几毫秒,请将Service
切换为BroadcastReceiver
。
如果您的工作耗时超过几毫秒,请考虑using my WakefulIntentService
,它提供了一种模式,允许_WAKEUP
警报可靠地完成工作。