Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将通知推送到Android应用程序_Android_Firebase_Push Notification_Firebase Cloud Messaging - Fatal编程技术网

将通知推送到Android应用程序

将通知推送到Android应用程序,android,firebase,push-notification,firebase-cloud-messaging,Android,Firebase,Push Notification,Firebase Cloud Messaging,我有一个android应用程序连接到FCM(firebase cloud messaging),用于发送通知。但是,当应用程序处于后台时,它不适用 自定义通知。我认为这是因为它没有进入OnMessageReceived方法。解决这个问题的办法是什么?正如我在某个地方读到的,它可以使用HTTP Api来完成,但我不知道如何去做?请帮忙,谢谢 是否调用方法onMessageReceived,取决于通知负载 请参阅FCM文档中的“处理消息”部分 处理消息 onMessageReceived适用于大多数

我有一个android应用程序连接到FCM(firebase cloud messaging),用于发送通知。但是,当应用程序处于后台时,它不适用
自定义通知。我认为这是因为它没有进入OnMessageReceived方法。解决这个问题的办法是什么?正如我在某个地方读到的,它可以使用HTTP Api来完成,但我不知道如何去做?请帮忙,谢谢

是否调用方法
onMessageReceived
,取决于通知负载

请参阅FCM文档中的“处理消息”部分

处理消息

onMessageReceived适用于大多数邮件类型,但以下例外情况除外:

应用程序处于后台时发送的通知消息。在这种情况下,通知将发送到设备的系统托盘。默认情况下,用户点击通知会打开应用程序启动器。 具有通知和数据负载的消息,包括后台和前台。在这种情况下,通知被传送到设备的系统托盘,数据有效负载在启动器活动的目的的附加部分中传送

总之,如果应用程序位于前台,则始终会调用
onMessageReceived
。如果应用程序处于后台,则只有在通知负载仅为
数据
时才会调用
onMessageReceived


因此,为了回答您的问题,如果无论应用程序处于前台还是后台状态,每次都必须有
onMessageReceived
,然后将通知有效负载设置为仅包含
数据。

如何将通知有效负载设置为仅包含数据?您的意思是,如果我通过我的应用程序服务器以json代码发送通知,我应该使用数据对象吗,如果我直接通过FCM发送消息而不使用服务器,那么我应该如何将有效负载设置为仅数据,请回答。@DivyangShah请参阅。它详细介绍了消息类型,以及如何发送数据消息。我已经阅读了这篇文章,但只介绍了如何使用json,我想问您是否知道我可以直接从firebase控制台发送数据消息,而不使用json或HTTp api,同时避免上述问题。谢谢