Firebase Cloud Messagingを使用して、開発中のアプリケーションにデータメッセージを配信しています。 FCMドキュメントによると、アプリがフォアグラウンドにあるとき:Firebase Cloud Messaging - Android:アプリケーションが閉じられたときに通知のクリックアクションが機能しない
クライアントアプリケーションは、onMessageReceived()でデータメッセージを受信し、それに応じてキーと値のペアを処理できます。
です。正常に動作します。アプリがバックグラウンドの場合、動作は異なります。
アクティビティの起動に使用されるインテントでデータペイロードを取得できます。
かなりうまくいくようです。 通知JSONの「click_action」パラメータを使用しています。ここでは、開きたい「activity」タグ内のAndroid Manifestで使用されるインテントフィルタの名前を指定します。例えば、私の通知は次のようになります。
{
"to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
"notification" : {
"body" : "This is a test",
"title" : "Test",
"click_action" : "com.test.click"
},
"data" : {
"key" : "data"
}
}
そして、私のマニフェストは「MainActivity」で、このインテントフィルタを持っています
<intent-filter>
<action android:name="com.test.click" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
私のアプリがバックグラウンドで動作していると私は通知を起動すると、すべてのもの正常に動作しているようです:通知をクリックすると、正しいアクティビティが表示され、データキーは受け取ったインテントの「追加」にあります。 私のアプリが閉じられているときに問題が発生します:通知をタップすると、アプリが正しく起動し、「com.test.click」インテントフィルタでアクティビティが開きますが、別の通知を送信しようとすると、それは何も起こりませんし、バックグラウンド通知は、私がアプリケーションを再起動するまでもう動作しません。
さらに明確にするには、アプリがフォアグラウンドまたはバックグラウンドのときに通知がうまく機能するようにします。私のアプリが閉鎖されている場合、最初の通知は正しく処理されますが、アプリを再起動するまで、他のバックグラウンド通知は一切動作しません。通知をタップすると、アプリは最後のアクティビティが表示されます[最近使ったアプリ]メニュー私が終了し、アプリを再起動すると、通知は正常に動作するように戻ります。
これはAndroidのデータメッセージやFCMの問題のバグですか?この問題を解決する方法はありますか?
私はテストのためにNexus 5 API 23を使用しています。
こんにちは、あなたはこれのための解決策を得ましたか? – Bahu
@Bahu残念ながら、データメッセージのみを使用して解決策を見つけましたが、システムトレイ通知を使用してバグはまだ存在しています。 FCMのバグだと思う。私の質問に記載されている同じバグを試しましたか? –
はい、私はこれを解決しようとしています。もしあなたが「データ・メッセージ、システム・トレイ通知を使用する」以外の提案があれば教えてください – Bahu