FirebaseMessagingService不叫第二个背景

问题描述:

后,我尝试使用火力地堡推送通知的Android。但是我面对很奇怪的问题。我在前台发送推送时一切正常。当我在后台发送推送信息(我仅发送数据)时,一切正常,直到我回到前台,然后再回到后台。FirebaseMessagingService不叫第二个背景

我时,我有我的应用程序进入到第二次背景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 

我怎样才能解决呢?

这是工作为目的,只有当你的应用程序是在前台通知邮件发送到您的onMessageReceived回调。如果您的应用程序处于后台或关闭状态,则会在通知中心显示通知消息,并且该消息中的任何数据都将传递到由于用户点击通知而启动的意图。

您可以指定一个click_action指示何时通知被用户点击这应该是启动的意图。如果未指定click_action,则使用主要活动。

当意图推出可以使用

getIntent()getExtras()。 来检索一个包含与通知消息一起发送的任何数据的Set。

更多有关通知消息https://firebase.google.com/docs/cloud-messaging/android/receive#sample-receive

+0

FirebaseMessagingService不会在后台 –

+0

如果调用(!getIntent()getExtras()= NULL){ 为(String键:。getIntent()getExtras()键设置( )){ Object value = getIntent()。getExtras()。get(key); Log.d(“MainActivity:”,“Key:”+ key +“Value:”+ value); }} 你 –

+0

可以从意向对象 –