提问人:Peter Horvath 提问时间:1/30/2023 更新时间:2/2/2023 访问量:75
onReceive() 函数未调用 broadcast接收器、Kotlin、Android
onReceive() function of a broadcastreceiver is not called, Kotlin, Android
问:
我正在尝试建立基本的警报服务。设置闹钟的代码如下所示。我有 15 分钟的间隔,看看是否有任何事情发生。
val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
val intent = Intent(this, AlarmReceiver::class.java)
val pendingIntent = PendingIntent.getActivity(
applicationContext,
0,
intent,
PendingIntent.FLAG_IMMUTABLE)
val calendar = Calendar.getInstance()
calendar.set(Calendar.HOUR_OF_DAY, 20)
calendar.set(Calendar.MINUTE, 40)
calendar.set(Calendar.SECOND, 0)
alarmManager.setRepeating(AlarmManager.RTC, calendar.timeInMillis, AlarmManager.INTERVAL_FIFTEEN_MINUTES, pendingIntent)
我在清单文件中注册了接收器:
<application>
...
<receiver
android:name=".AlarmReceiver"
android:enabled="true"
android:exported="false" />
</application>
此外,我也在清单文件中定义了一个权限
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
不调用 AlarmReceiver 类的 onReceive 函数。 我有一个 println 行。它不会打印出任何东西。
我不知道我能做些什么来使闹钟正常工作。 欢迎任何提示。
先谢谢你 br, 彼得
答:
0赞
Peter Horvath
1/31/2023
#1
在创建 而不是PendingIntent.getBroadcast()
PendingIntent
PendingIntent.getActivity()
评论
PendingIntent.getActivity()
PendingIntent.getReceiver()