Kotlin AlarmManager 和 BroadcastReceiver 不工作
Kotlin AlarmManager and BroadcastReceiver not working
我正在尝试使用 AlarmManager 设置闹钟,但我的 BroadcastReceiver 从未被调用。这是我的片段。
val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
//Never gets hit
}
}
context.registerReceiver(receiver, IntentFilter(LOCAL_NOTIFICATION))
val intent = Intent()
intent.action = LOCAL_NOTIFICATION
val alarmManager = context.getSystemService(ALARM_SERVICE) as? AlarmManager
val pendingIntent = PendingIntent.getService(context, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT)
val calendar = Calendar.getInstance()
calendar.add(Calendar.SECOND, 10)
alarmManager?.set(AlarmManager.RTC_WAKEUP, calendar.timeInMillis, pendingIntent)
我已经尝试在 AndroidManifest.xml 中注册广播接收器,但似乎没有任何效果。
我刚刚注意到我在 PendingIntent
上呼叫 getService()
而不是 getBroadcast()
修改后完美运行!
除了首选答案外,我还设置了意图 class 才生效。请参阅以下示例:
val intent = Intent()
intent.action = LOCAL_NOTIFICATION
intent.setClass(context, MyBroadCastReceiver::class.java) //this line
在将意图传递给 pendintIntent 之前。
希望对你有帮助
我正在尝试使用 AlarmManager 设置闹钟,但我的 BroadcastReceiver 从未被调用。这是我的片段。
val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
//Never gets hit
}
}
context.registerReceiver(receiver, IntentFilter(LOCAL_NOTIFICATION))
val intent = Intent()
intent.action = LOCAL_NOTIFICATION
val alarmManager = context.getSystemService(ALARM_SERVICE) as? AlarmManager
val pendingIntent = PendingIntent.getService(context, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT)
val calendar = Calendar.getInstance()
calendar.add(Calendar.SECOND, 10)
alarmManager?.set(AlarmManager.RTC_WAKEUP, calendar.timeInMillis, pendingIntent)
我已经尝试在 AndroidManifest.xml 中注册广播接收器,但似乎没有任何效果。
我刚刚注意到我在 PendingIntent
上呼叫 getService()
而不是 getBroadcast()
修改后完美运行!
除了首选答案外,我还设置了意图 class 才生效。请参阅以下示例:
val intent = Intent()
intent.action = LOCAL_NOTIFICATION
intent.setClass(context, MyBroadCastReceiver::class.java) //this line
在将意图传递给 pendintIntent 之前。 希望对你有帮助