我在Android应用中使用Firebase进行推送通知。但它是在应用程序处于后台时发送通知。
我该如何处理它,以便Firebase在应用内部禁用通知时不会发送通知?
答案 0 :(得分:1)
每当您使用通知有效负载时,您的应用都会始终在后台显示通知。因此,您可能只想使用data-payload,如果从控制台发送消息,则无法实现。因此,您需要拥有自己的Web服务器,只将数据有效负载密钥发送到fcm服务器。执行此操作后,您需要检查应用程序是处于前台还是后台,因为如果您单独使用数据有效负载,则onMessageReceived()
将始终触发。以下是link,告诉您如何检查您的应用是在前景还是背景中。
以下是有关您问题的部分答案。如果您在sharePereference或dataBase中存储指示用户禁用通知的数据,则需要获取该值并将其放入onMessageReceived()
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if(appIsNotInForeGround){ //you will not want to show a notification if your app is running.
if(!isMuteNotificaition){ // Check wether your user mute the app
sendNotification(); //your custom notification builder.
}
}
}
参考我刚刚向您展示的appIsNotInForeGround
链接。