我的设备没有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 PM设置了一个闹钟,当设备时间更改为7:10 PM时,一直保持wifi连接,可以正常接到电话。
现在在相同的情况下,将警报设置为7:10 PM,但是当设备时间更改为7:10 PM但那时没有连接wifi时,现在7:11之后,我在设备,在我连接wifi之后,在这种情况下,我的先前设置的警报就被调用了。
谁能知道没有连接wifi时未及时触发警报的原因是什么?
注意::在我的警报广播中,我正在启动WorkManager,该工作有一个限制,即只有在已连接wifi网络的情况下才能启动,但是我相信WorkManager不会影响我的警报触发器。>
答案 0 :(得分:1)
看看这个answer
与wifi无关,它与您进行设置的方式相同,请尝试使用setRepeating
而不是setInexactRepeating
。差异已经很好地解释了上面的答案。
修改
最终将标志更改为0,如下所示
val pendingIntent = PendingIntent.getBroadcast(context, requestCode, archiveIntent, 0)
传递0会带回任何现有警报或创建一个新警报。