Android用のプッシュ通知にFirebaseを使用しようとしています。しかし、私は非常に奇妙な問題に直面した。フォアグラウンドでプッシュを送信すると、すべてOKです。私はフォアグラウンドに戻ってからバックグラウンドに戻るまで、バックグラウンドでプッシュを送信すると(データのみを送信する)すべてがOKです。私は私のアプリは、二度目にバックグラウンドになっていたときにFirebaseMessagingServiceが2番目の背景の後に呼び出されない
マイFirebaseMessagingService
は呼び出されません。また、私はAndroidエミュレータを使用していることに注意してください。コード:
public class MyAndroidFirebaseMsgService extends FirebaseMessagingService {
private static final String TAG = "MyAndroidFCMService";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
}
}
//...
public class MyAndroidFirebaseInstanceIdService extends FirebaseInstanceIdService {
private static final String TAG = "MyAndroidFCMIIDService";
@Override
public void onTokenRefresh() {
//Get hold of the registration token
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
//Log the token
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
private void sendRegistrationToServer(String token) {
//Implement this method if you want to store the token on your server
}
}
のAndroidManifest.xml:
<service android:name=".MyAndroidFirebaseMsgService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name=".MyAndroidFirebaseInstanceIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
サーバー:
curl -H "Content-type: application/json" -H "Authorization:key=<MYKEY>" -X POST -d '{"to": "<MYTOKEN>","data": {"hello": "This is a Firebase Cloud Messaging Device Group Message!"}}' https://fcm.googleapis.com/fcm/send
どのように私はそれを解決することができますか?あなたのアプリがフォアグラウンドにあるときにのみ
FirebaseMessagingServiceが背景 –
場合には呼び出しません、通知メッセージの詳細について
(。!getIntent()getExtras()= NULL){(文字列のキーの :。。getIntent()getExtras()のkeySet( )){ オブジェクト値= getIntent()。getExtras()。get(key); Log.d( "MainActivity:"、 "Key:" + key + "Value:" + value); }} あなたが応答のためにうーん –?私はこの方法をデバッグするときにアプリがbackgraoundタイトルであるがコニングされていない場合、問題 –