Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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 - Fatal编程技术网

Android-打开应用程序时从推送通知读取数据

Android-打开应用程序时从推送通知读取数据,android,Android,我已经使用Firebase云消息设置了我的应用程序,以接收通知 我创建了一个从FirebaseMessagingService扩展而来的服务,并覆盖了MessageReceived上的方法。在这里,我创建了一个通知,当您单击它时,根据作为参数提供的RemoteMessage数据导航到某个活动。 这不是问题,但它只在应用程序位于前台或后台时才起作用 当应用程序关闭时,操作系统负责启动通知,问题就来了。 当我点击它时,第一个活动被打开(在我的例子中是SplashActivity),我必须阅读通知数据

我已经使用Firebase云消息设置了我的应用程序,以接收通知

我创建了一个从FirebaseMessagingService扩展而来的服务,并覆盖了MessageReceived上的方法。在这里,我创建了一个通知,当您单击它时,根据作为参数提供的RemoteMessage数据导航到某个活动。 这不是问题,但它只在应用程序位于前台或后台时才起作用

当应用程序关闭时,操作系统负责启动通知,问题就来了。 当我点击它时,第一个活动被打开(在我的例子中是SplashActivity),我必须阅读通知数据才能知道下一步要打开什么活动

我不知道怎么做。 有没有办法在SplashActivity中获取该数据?

可能是的副本

简言之,当应用程序处于后台(或就此关闭)时,通知的
数据段将传递给intent extras

从谷歌的文档中:

当你的应用程序在后台时,Android会将通知消息定向到系统托盘。默认情况下,用户点击通知会打开应用程序启动器

这包括同时包含通知和数据有效负载的消息(以及从通知控制台发送的所有消息)。在这些情况下,通知会发送到设备的系统托盘,数据有效负载会在启动器活动的目的之外发送

因此,在您的
Splash活动中,您可以执行以下操作:

@Override
public void onCreate(Bundle savedInstanceState) {

    if (getIntent() != null) {
         Bundle dataBundle = getIntent().getExtras();
         // dataBundle contains the notification data payload
    }
}

可能重复的谢谢!!!!!这对我来说很有效,通知数据来自于SplashActivity意图。