【问题标题】:Can't handle tap when app is in background当应用程序在后台时无法处理点击
【发布时间】:2020-07-02 18:39:06
【问题描述】:

来自谷歌文档:

在后台应用中处理通知消息

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

但我需要处理点击并转发到我的应用上的特定活动(当应用在后台时)。

class CustomFirebaseMessagingService : FirebaseMessagingService() {


    /*-
        Call this method only when app is foreground.
     
    */
    override fun onMessageReceived(remoteMessage: RemoteMessage?) {

只有当应用在前台时才调用 onMessageReceived 方法。

【问题讨论】:

  • 你的代码在哪里?你试过什么?

标签: android firebase-cloud-messaging


【解决方案1】:

Firebase 云消息支持两种types of messages:通知消息和数据消息。

当您的应用在后台运行时,操作系统会处理通知消息。没有什么可以改变的。

可以做的是发送一条数据消息,无论应用程序是否处于活动状态,它都会传递到您的应用程序的onMessage 处理程序。由于这个onMessage 可以在应用不活动时被调用,所以它在FirebaseMessagingService 类中,而不是在一个Activity 中。

另请参阅 Android 上 handling messages 上的 Firebase 文档。

【讨论】:

  • 是否可以从 Firebase 控制台发送数据消息?
  • 没有。 Firebase 控制台只能发送通知消息。但在代码或命令行中很容易做到:stackoverflow.com/questions/37371990/…(那里的示例发送通知,但您可以更改数据)
猜你喜欢
  • 2023-03-11
  • 2013-06-23
  • 1970-01-01
  • 2019-11-23
  • 1970-01-01
  • 2020-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多