Android firebase 在收到特定类型的消息时启动服务

Android firebase start a service when a specific type of message is received

我想在收到特殊类型的消息时启动后台服务。为此,我正在执行以下操作

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

我的问题是,它仅在应用程序处于前台时有效,但当应用程序处于后台时 onMessageReceived 不会触发。而不是它只是显示一个通知。

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

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

建议只发送 data- 消息负载。使用 Firebase 通知控制台无法做到这一点。

使用控制台时,发送的消息被视为 notification 消息负载,只有添加 自定义数据 才会包含 data 负载.但是,在那种情况下,它仍然有 notificationdata 消息。

要仅发送 data- 消息负载,您需要通过自己的应用服务器或 or cURL[ 自行构建请求=17=]