我正在尝试检查是否已经存在重复警报。我正在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
}
该未决意图应与设置警报时创建的未决意图完全一致。