首页 > 解决方案 > 手动更改设备时间时,Android警报管理器不会触发警报

问题描述

我已经使用警报管理器设置了一个警报并测试它手动更改了设备的时间。此时警报不会触发,但如果我们等到它被触发的时间。有没有更好的选择来测试警报?

报警设置代码如下。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            alarmManager.setExactAndAllowWhileIdle(
                AlarmManager.RTC_WAKEUP,
                total,
                operation
            )
        } else {
            alarmManager.setExact(
                AlarmManager.RTC_WAKEUP,
                total,
                operation
            )
        }

标签: androidalarmmanagerandroid-alarms

解决方案


不,这不会由AlarmManager. 因此,您应该听取时间更改操作并重新创建警报。

这些动作是

Intent.ACTION_TIME_TICK
Intent.ACTION_TIMEZONE_CHANGED
Intent.ACTION_TIME_CHANGED

警报管理器即使在重新启动后仍然存在吗?是了解您的问题并解决问题的更好答案。

为了更好地理解,您可以关注Android 中的日期和时间更改侦听器?


推荐阅读