首页 > 解决方案 > wifi断开后我的重复警报不起作用

问题描述

我的设备没有 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 不应该影响我的警报触发。

标签: androidalarmmanagerandroid-wifi

解决方案


看看这个答案

它与 wifi 无关,它是您设置它的方式,尝试使用setRepeating而不是setInexactRepeating. 上面的答案很好地解释了差异。

编辑

最终在将标志更改为 0 后使其正常工作,如下所示

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

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


推荐阅读