如何根据android studio中正在显示的屏幕来控制是否显示通知?

lrpiutwd  于 2022-12-16  发布在  Android
关注(0)|答案(2)|浏览(164)

我正在制作一个聊天应用程序,我正在使用Firebase云消息发送推送通知。一切正常,但我不想显示通知,如果应用程序已经在聊天屏幕中。我正在使用jetpack组成的UI,并有单活动架构。
所以在我的聊天界面,我不想显示通知,但是,如果用户在其他界面,我想显示通知。
我怎样才能做到这一点?

ssm49v7z

ssm49v7z1#

有两种可能的解决方案
1.在Activity或SharedPreference中声明布尔值,并根据生命周期事件切换值。
1.一旦你收到了firebase通知,发送广播并监听活动。在活动中使用navController来识别最上面的可见屏幕,并决定是否显示通知。
val visibleScreenRoute = parentNavController.currentBackStackEntry?.destination?.route?.split(Constants.KEY_QUESTION_MARK)?.getOrNull(0)
希望这能帮助你解决这个问题。

ddrv8njm

ddrv8njm2#

我和你有同样的案子。
首先,您需要创建自定义通知并手动控制推送通知。
第二,你有一个模块,检查活动是否显示。
最后,当你收到来自firebase的通知数据时,使用上述模块来决定是否显示通知。
查看此文档以了解更多详细信息:Build Notification

相关问题