在睡眠应用程序后,AlarmManager setInexactRepeating不正确重复

时间:2018-02-05 16:44:11

标签: android alarmmanager

我想通过闹钟管理器创建重复服务。如果应用程序在实时运行,则每隔一分钟运行正确。它处于睡眠模式,每五分钟运行一次。为什么在睡眠模式下每分钟都没有运行?

public static final long NOTIFY_INTERVAL = 60000;
AlarmManager alarms = getAlarmMAnager();
alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), NOTIFY_INTERVAL, recurringAlarm);

1 个答案:

答案 0 :(得分:1)

这是非常期待的,并且可能由于各种原因

而发生
    关于在后台运行服务的
  • Android Oreo has limitations,因此您可能会在O设备上遇到此问题

  • 在Android Marshmallow上的
  • Doze mode可以导致这种情况,它将停止所有网络操作本身&拿走CPU唤醒锁

  • AlarmManager不适用于在后台执行重复操作

我建议您使用 JobsSchedulers Firebase Dispatchers 执行您要在后台执行的任务,因为它会照顾打盹模式,后台服务限制,无网络场景等。