当应用程序在后台杀死后再次启动时,警报挂起意图返回null



我正在尝试检查是否已经存在重复警报。我正在MIUI 11(操作系统8.1版(设备中进行测试,在那里我设置了一个警报,然后从后台删除了该应用程序。如果我再次打开应用程序,则会再次创建新的警报

这是我设置重复警报的代码

private fun startAlarm() {
val CUSTOM_INTENT = "com.test.intent.action.ALARM"
val intent = Intent(this, AlarmHelper::class.java)
intent.action = CUSTOM_INTENT
val pendingIntent: PendingIntent =
getBroadcast(this, 101, intent, PendingIntent.FLAG_UPDATE_CURRENT)
val alarmManager = getSystemService(ALARM_SERVICE) as AlarmManager
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
System.currentTimeMillis()+60*60*1000, pendingIntent)
}

这会检查是否已经存在警报,那么我不会创建新的警报。

private fun isAlarmExist() :Boolean =
PendingIntent.getBroadcast(this, 101,
Intent(this, AlarmHelper::class.java),
PendingIntent.FLAG_NO_CREATE) != null

已经尝试过这个

private fun isAlarmExist() :Boolean =
PendingIntent.getBroadcast(this, 101,
Intent("com.example.dozemodepoc.MY_UNIQUE_ACTION"),
PendingIntent.FLAG_NO_CREATE) != null
// this didnot work either

已经通过如何检查AlarmManager是否已经设置了报警?

当强制停止应用程序并再次启动应用程序时,将再次创建新实例。任何形式的帮助都将不胜感激!!。

我在isAlarmExist((中犯了一个愚蠢的错误

private fun isAlarmExist() :Boolean {
val CUSTOM_INTENT = "com.test.intent.action.ALARM"
val intent = Intent(this@MainActivity, AlarmHelper::class.java)
intent.action = CUSTOM_INTENT
return getBroadcast(this@MainActivity, 101, intent, PendingIntent.FLAG_NO_CREATE)!=null
}

该未决意图应与设置警报时创建的未决意图完全一致。

相关内容

  • 没有找到相关文章

最新更新