是否有办法限制特定屏幕的fcm通知?



我有一个关于FCM通知限制的问题。是否有任何方法可以限制特定屏幕的FCM通知?例如,如果有三个屏幕,屏幕A,屏幕B和屏幕C,则通知应该在屏幕A和屏幕B上接收,而不应该在用户正在观看屏幕C时接收。

如果我是对的,我认为它必须检查屏幕C在发送通知之前是否显示在设备上。那么,我如何检查显示的是哪个屏幕,以及如何限制特定屏幕的通知?

一种方法是拦截所有fcm如果app在前台,检查app是否在前台你可以在FCMService

中使用这个
if(ProcessLifecycleOwner.get().lifecycle == Lifecycle.State.RESUMED)
LocalBroadcastManager.sendBroadcast(Intent())

你需要为它添加生命周期依赖

implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
kapt "android.arch.lifecycle:compiler:1.1.1"

然后你可以注册一个广播接收器从你的屏幕C和发送显式广播从FCMService。

请注意,广播接收器在屏幕ConResume上注册,在onDestroy上未注册。

关于如何使用显式BroadcastReceiver的更多信息在这里

相关内容

  • 没有找到相关文章

最新更新