AlarmManager设置InexactRepeating未重复触发



我正在尝试安排警报,它将在每小时后执行一些任务。出于测试目的,我将警报设置为每5秒触发一次,但它只触发一次。

private fun register30MinSchedule() {
val alarmMgr = getSystemService(Context.ALARM_SERVICE) as AlarmManager
val alarmIntent = Intent(this, AlarmReceiver::class.java).let { intent ->
PendingIntent.getBroadcast(applicationContext, LocationTrack_Service_ID, intent, 0)
}
alarmMgr?.setInexactRepeating(
AlarmManager.RTC_WAKEUP,
System.currentTimeMillis(),
System.currentTimeMillis() + 5000 ,
alarmIntent
)
}

CCD_ 1仅被调用一次。有人能告诉我我犯了什么错误吗?

问候,

我能够解决这个问题。AlarmManager的所有方法都需要精确的时间。在我的场景中,我使用可变时间作为第二个和第三个参数triggerTimeMillis,即System.currentTimeMillis() + 5000。因此,设置重复警报的正确方法是:

val initialTime = System.currentTimeMillis()
val repeatingInterval = initialTime + 5000
alarmMgr?.setInexactRepeating(AlarmManager.RTC_WAKEUP, initialTime, repeatingInterval,alarmIntent)

这是在每个重复间隔之后触发的。希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新