Android BroadcastReceiver未接收本地广播
我正在尝试扩展FCM服务,并在调用Android BroadcastReceiver未接收本地广播,android,kotlin,Android,Kotlin,我正在尝试扩展FCM服务,并在调用onNewToken()时将其广播到main活动onNewToken(),但没有调用onReceive()方法。据我所知,我不需要在清单中定义任何其他内容,因为这是一个本地广播。这些是我的课程: MainActivity.kt 通过Context.sendBroadcast()发送的广播不是本地广播,这就是您不接收它们的原因 您还需要使用LocalBroadcastManager进行发送 而不是以下内容: applicationContext.sendBroad
onNewToken()
时将其广播到main活动<确实调用了code>onNewToken()
,但没有调用onReceive()
方法。据我所知,我不需要在清单中定义任何其他内容,因为这是一个本地广播。这些是我的课程:
MainActivity.kt
通过
Context.sendBroadcast()
发送的广播不是本地广播,这就是您不接收它们的原因
您还需要使用LocalBroadcastManager
进行发送
而不是以下内容:
applicationContext.sendBroadcast(Intent(TOKEN_REFRESHED_EVENT))
您应该这样做:
LocalBroadcastManager.getInstance(this)
.sendBroadcast(Intent(TOKEN_REFRESHED_EVENT))
此外,请不要忘记在适当的时候注销接收器,以避免内存泄漏:
// most likely in onDestroy() (since the registration is in onCreate())
LocalBroadcastManager.getInstance(this)
.unregisterReceiver(broadcastReceiver)
通过
Context.sendBroadcast()
发送的广播不是本地广播,这就是您不接收它们的原因
您还需要使用LocalBroadcastManager
进行发送
而不是以下内容:
applicationContext.sendBroadcast(Intent(TOKEN_REFRESHED_EVENT))
您应该这样做:
LocalBroadcastManager.getInstance(this)
.sendBroadcast(Intent(TOKEN_REFRESHED_EVENT))
此外,请不要忘记在适当的时候注销接收器,以避免内存泄漏:
// most likely in onDestroy() (since the registration is in onCreate())
LocalBroadcastManager.getInstance(this)
.unregisterReceiver(broadcastReceiver)