gpt4 book ai didi

java - 如何在 Android 应用程序中处理/处理 Firebase Cloud Messaging 的数据负载(包括通知)?

转载 作者:行者123 更新时间:2023-12-02 02:50:15 26 4
gpt4 key购买 nike

我对接收包含通知和数据负载的 Firebase 消息有疑问。 documentation表示数据将“在 Intent 的额外内容中”到达。

我的问题是哪个 Intent (或 Activity )?将应用程序切换到后台时,将出现用户离开时的屏幕。那么,我是否需要尝试检索应用程序中所有 Intent/Activity 的额外内容?

一旦应用程序进入前台,我实际上应该在哪里以及如何编码来检索数据有效负载?

谢谢!

添加:

我的意思是,我已经有 10 多个 Activity ,应用程序完成后还会有更多。那么,我是否必须检索所有 Activity 的 Extra 来查看应用程序是否已使用任何推送数据负载重新打开?

最佳答案

在您问题中链接的文档中,它指出:

Messages with both notification and data payload, both background and foreground. In this case, the notification is delivered to the device’s system tray, and the data payload is delivered in the extras of the intent of your launcher Activity

启动器 Activity 在 list 中使用类别 LAUNCHER 指定。例如:

    <activity
android:name="com.example.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

您可以覆盖默认行为以指定另一个 Activity 。在你的message notification data ,添加带有操作字符串值的属性 click_action。然后创建 Activity 并在 list 中为其提供与操作匹配的 Intent 过滤器。例如,带有消息:

{
"to": "dhVgCGVkTSR:APA91b...mWsm3t3tl814l",
"notification": {
"title": "New FCM Message",
"body": "Hello World!",
"click_action": "com.example.FCM_NOTIFICATION"
},
"data": {
"score": "123"
}
}

像这样定义 Intent 过滤器:

    <activity android:name=".MyFcmNotificationActivity">
<intent-filter>
<action android:name="com.example.FCM_NOTIFICATION" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

为了澄清一下文档,收到消息时数据有效负载不会传递到 Activity ;当用户点击通知时就会发送该通知。

关于java - 如何在 Android 应用程序中处理/处理 Firebase Cloud Messaging 的数据负载(包括通知)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43963762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com