当应用程序位于后台时,Android第二推送通知有效负载数据未在附加中接收
我面临着一个非常奇怪的问题,当应用程序在后台时,不会再次接收有效负载数据 例如-(当我还没有启动我的应用程序时)当应用程序位于后台时,Android第二推送通知有效负载数据未在附加中接收,android,push-notification,notifications,android-notifications,firebase-notifications,Android,Push Notification,Notifications,Android Notifications,Firebase Notifications,我面临着一个非常奇怪的问题,当应用程序在后台时,不会再次接收有效负载数据 例如-(当我还没有启动我的应用程序时) 当我第一次收到通知时,它将打开我的应用程序并从通知中读取附加内容 当我收到第二次通知时,会将我的应用程序最大化,或将我的应用程序放在最前面,但不会阅读附加内容 当我的应用程序打开时,一切正常。即使我在手动打开应用程序后将其放在后台,所有通知也可以正常工作 这是我的舱单代码 <activity android:name=".PagerAct
- 当我第一次收到通知时,它将打开我的应用程序并从通知中读取附加内容李>
- 当我收到第二次通知时,会将我的应用程序最大化,或将我的应用程序放在最前面,但不会阅读附加内容
<activity
android:name=".PagerActivity"
android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
我做了很多研究,但都没有用。如果您需要任何其他详细信息,请告诉我
我正在使用firebase发送带有自定义数据的通知。我也尝试过通过网络服务器发送,但仍然没有成功
我调试了我的应用程序,发现当我通过第二次通知打开应用程序时,没有创建新实例。有两种不同类型的消息
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}
数据报文的有效载荷
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data" : {
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
},
}
同时具有通知和数据有效载荷的消息
接收包含通知和数据有效载荷的消息时,应用程序的行为取决于应用程序是在后台还是前台,在接收时是否处于活动状态
在后台时,应用程序在通知托盘中接收通知负载,并且仅在用户点击通知时处理数据负载
在前台时,您的应用程序会收到一个消息对象,其中两个有效负载都可用
如果您希望将数据与通知一起传递,以便在应用程序的两种状态(活动和非活动)上工作,则必须使用数据消息
当您同时发送<代码>通知<代码>和<代码>数据有效负载<代码>时,可在官方文档中获得更多详细信息,如果您的应用程序位于后台,通知将显示在托盘中,但如果您的启动活动位于后台,则单击通知,它将被带到前台,您将不会收到数据负载 一种解决方案是将该特定活动的
启动模式设置为singleTask,并在活动中实施onNewIntent
,以接收数据有效负载
这样,您的活动将被带到前台,位于堆栈中此活动顶部的活动将被销毁
你可以找到更多关于启动模式的信息。你是否实现了onMessageReceived
?@mallaudin-onMessageReceived是为你的应用程序在前台时使用的。此处我的应用程序位于后台。onMessageReceived
将被调用以获取数据消息
,即使该应用程序位于后台。我同时发送通知和数据。如果您的应用程序处于后台或已关闭,则通知中心会显示一条通知消息,并且该消息中的任何数据都会传递到用户点击通知后启动的intent。我传递了一条数据消息,但在我的通知中没有第二次收到它。我刚刚调试了我的应用程序,发现当我通过第二次通知打开我的应用程序时,没有创建新实例。我已经发布了问题中的部分代码。你还需要什么?为我工作。谢谢……)
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data" : {
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
},
}