0

我想在我收到特殊类型的消息时启动后台服务。对于这个我做了以下当接收到特定类型的消息时,Android Firebase启动服务

public class MyFirebaseMessagingService extends FirebaseMessagingService { 
    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     if(remoteMessage.getData().get("message").equals("something"){ 
       //start service 
     } 
    } 
} 

我的问题是,当应用程序是前台只工作,但当应用程序在后台onMessageReceived不会触发。而不是只显示通知。

我想要的是禁用通知,当应用程序在后台,而不是启动服务。

我看了其他答案是这样的,他们中的一些人建议要完成这个我需要发送data-message。我正在从Firebase控制台发送数据消息,但它不起作用。

+0

建立自己的要求添加一个额外的键值对,所以你可以检查onMessageReceived() –

+0

中的密钥只需打印收到的消息并查看它是否为“数据”或“通知”。据我所知,如果您从Firebase控制台发送消息,它将作为通知发送。 – Dexter

回答

1

建议什么是发送一个data-只有消息的有效载荷。这是使用Firebase通知控制台无法实现的。

当使用控制台,发送的消息被处理为一个notification消息有效负载,并且仅添加自定义数据data有效载荷被包括在内。但是,在这种情况下,它仍然具有notificationdata消息。

要发送data - 只有消息负载,你需要通过自己的应用程序服务器或using PostmancURL

在数据消息
相关问题