2016-08-03 79 views
0

这是我第一次使用FCM.I使用Android设备。接收FCM通知退出应用程序时

当我退出没有在后台运行的应用程序时,我发送了一些通知给我的设备。当我重新打开我的应用程序时,我无法获得我以前发送的任何通知。

那么FCM正常吗?如果是正常的,我怎么能知道我的信息真正达到的设备?如果不正常,我该怎么办?

我使用我从官方github下载的FCM示例。当应用程序处于活动状态或在后台运行时,我可以成功通知。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.google.firebase.quickstart.fcm"> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name="com.google.firebase.quickstart.fcm.MainActivity" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <!-- [START firebase_service] --> 
     <service android:name=".MyFirebaseMessagingService"> 
      <intent-filter> 
       <action android:name="com.google.firebase.MESSAGING_EVENT" /> 
      </intent-filter> 
     </service> 
     <!-- [END firebase_service] --> 
     <!-- [START firebase_iid_service] --> 
     <service android:name=".MyFirebaseInstanceIDService"> 
      <intent-filter> 
       <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 
      </intent-filter> 
     </service> 
     <!-- [END firebase_iid_service] --> 

     <service android:name=".RegistrationIntentService" /> 
    </application> 

</manifest> 

这是我送

{ 
    "notification" : { 
     "body" : "fsdf19", 
     "title" : "fsdfsd" 
    }, 
    "data":{ 
    "body":"adfadffdasdfafasdfasf", 
    "title":"asdfadfaf" 
    } 

    "priority":"high", 
    "registration_ids" : ["dVWKLIPn7J4:APA91bFv1U5IG8-YOrjNsWIDJsj4sCACGOi-f6FRv4ebr-fhQIT1wL6yzyVoK3rMIAfXAYpj2qkumvqf1pqwtIcv18MDdFtt_RCge-t0acN15htbEd_EAHmU41lGHaVAbq_g_58sDewy"] 
} 
+1

请提供舱单的实施/代码和FCM集成 – gaara87

+0

我已经编辑again.Thanks提示符@ gaara87 – wyx

+0

我想只。数据消息在后台时可以由.MyFirebaseMessagingService接收。否则,通知将显示在通知栏中。如果您希望应用始终处理通知,请尝试删除推送消息的“通知”部分。 – jonDoe

回答

0

当你的应用程序被关闭FCM将不会收到消息/停止。为了让您的服务启动并处理消息,您的应用程序必须处于运行状态或在后台运行。

+0

*当您的应用程序关闭/停止时,FCM不会收到消息*我不认为这是真的。你有来源来备份你的声明吗? –

+0

从Android 3.1开始,停止的应用程序不应该通过广播唤醒。请参阅“在停止的应用程序上启动控件”部分:https://developer.android.com/about/versions/android-3.1.html –

+0

当您的应用程序关闭/停止时,FCM将不会收到消息。我不认为是真的。当应用程序的服务被关闭时,不会收到FCM。 – tenki

1

通过Firebase控制台发送的邮件仅在应用处于前景时才可见。

要在应用程序处于后台时处理消息,必须发送数据消息

请参考以下链接:https://stackoverflow.com/a/37845174/3152278

enter image description here

+0

我想问的是,当应用程序不在前台或后台时,好吗?当我完全关闭我的应用程序后,我可以在重新打开应用程序后收到通知吗? – wyx

+0

谢谢@Abhishek它帮助! – Aashish