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

あなたのデータメッセージ内の1つの余分なキーと値のペアを追加しますので、 onMessageReceived()内のそのキーを確認することができます –

+0

メッセージを受信し、それが "データ"か "通知"かどうかを確認してください。私が覚えている限り、Firebaseコンソールからメッセージを送信すると通知として送られます。 – Dexter

答えて

1

data - メッセージペイロードのみを送信することをお勧めします。 Firebase Notifications Consoleを使用することはできません。

コンソールを使用する場合、送信されたメッセージはnotificationメッセージ・ペイロードとして扱われ、唯一がdataペイロードが含まれるカスタムデータを追加されています。しかし、その場合には、まだnotificationdataの両方のメッセージがあります。 data送信するには

からのみメッセージペイロードを、あなた自身のアプリケーションサーバーを介して、またはusing Postmanによって要求を自分で構築する必要があるだろうかcURL

関連する問題