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)
以下是我的观察:
假设我在 7:10 下午设置了闹钟,当设备时间更改为 7:10 下午时,当 wifi 一直连接时,它按预期接到了电话。
现在相同的场景是 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 将返回任何现有警报或创建一个新警报。
我的设备没有 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)
以下是我的观察:
假设我在 7:10 下午设置了闹钟,当设备时间更改为 7:10 下午时,当 wifi 一直连接时,它按预期接到了电话。
现在相同的场景是 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 将返回任何现有警报或创建一个新警报。