wifi 断开后,我的重复闹钟不起作用

My repeat alarm does not work after wifi disconnected

我的设备没有 sim 卡或任何网络,除了 wifi 连接。

现在我正在设置每天重复闹钟,当连接 wifi 时它工作正常,但是当 Android 平板电脑上没有连接 wifi 时它不会按时触发。

val pendingIntent = PendingIntent.getBroadcast(context, requestCode, archiveIntent, PendingIntent.FLAG_CANCEL_CURRENT)
        val alarms = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
        alarms.cancel(pendingIntent)
        alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP, updateTime.timeInMillis, AlarmManager.INTERVAL_DAY, pendingIntent)

以下是我的观察:

  1. 假设我在 7:10 下午设置了闹钟,当设备时间更改为 7:10 下午时,当 wifi 一直连接时,它按预期接到了电话。

  2. 现在相同的场景是 7:10 下午设置闹钟但是当设备时间更改为 7:10 下午但是那时 wifi 没有连接,现在 7:11 我在设备上打开我的 wifi,在我连接 wifi 之后,我之前设置的警报在这种情况下被调用。

谁知道wifi未连接时没有及时触发警报的原因是什么?

注意: 在我的警报广播中,我正在启动 WorkManager,它有一个限制,即只有在连接了 wifi 网络时它才应该启动,但我相信 WorkManager 不应该影响我的警报触发器。

看看这个answer

这与 wifi 无关,这是您设置它的方式,请尝试使用 setRepeating 而不是 setInexactRepeating。区别在上面的回答中已经很好地解释了。

编辑

像下面这样将标志更改为 0 后最终使它工作

val pendingIntent = PendingIntent.getBroadcast(context, requestCode, archiveIntent, 0)

传递 0 将返回任何现有警报或创建一个新警报。