警报管理器在几分钟后停止触发 PendingIntent

时间:2021-02-08 12:02:17

标签: alarmmanager

我尝试创建提醒应用。我的目标是每小时触发一次通知。我已经使用警报管理器来实现它。前 2-3 小时一切正常。在那之后,通知将停止发送。如果我重新打开应用,我会立即收到缺少通知。

报警管理器:

val intent = Intent(context, AlarmReceiver::class.java).apply {
        action = context.getString(R.string.alarm_pending_action)
    }
val alarmIntent =  PendingIntent.getBroadcast(context, 0, intent, FLAG_UPDATE_CURRENT)
val datetimeToAlarm = Calendar.getInstance()
        .apply {
            set(Calendar.MINUTE, 0)
            set(Calendar.SECOND, 0)
            set(Calendar.MILLISECOND, 0)
        }
alarmManager.setRepeating(
        AlarmManager.RTC_WAKEUP,
        datetimeToAlarm.timeInMillis,
        60 * 60 * 1000,
        alarmIntent
)

报警接收器:

override fun onReceive(context: Context, intent: Intent) {
    if (intent.action != null) {
        if (intent.action!!.equals(context.getString(R.string.alarm_pending_action), ignoreCase = true)) {
            NotificationHelper.createNotification(context)
        }
    }
}

AndroidManifest

<receiver android:name=".alert.AlarmReceiver"/>

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。解决方案是将 setRepeating 替换为 setAlarmClock,效果很好。