【问题标题】:User click on notification firebase messaging background用户点击通知firebase消息背景
【发布时间】:2017-08-16 12:32:23
【问题描述】:

如果用户点击通知(由 firebase cloudmessing 发送),默认情况下它会打开我的应用程序(我的主要活动),我可以通过主要活动中的此代码获取有效负载

if (getIntent().getExtras() != null) {
    for (String key : getIntent().getExtras().keySet()) {
        String value = getIntent().getExtras().getString(key);
        Log.d(TAG, "Key: " + key + " Value: " + value);
        startOtherActivity();
    }
}

但我不想在主要活动中获取有效负载,因为我的主要活动是启动活动,它只存在 3 秒,然后它会跳转到另一个活动。 如何在其他活动中获取有效负载? (不是主要活动)

【问题讨论】:

    标签: java android


    【解决方案1】:

    To receive messages, use a service that extends FirebaseMessagingService. Your service should override the onMessageReceived and onDeletedMessages callbacks.

    你应该处理当用户点击通知等时发生的事情。

    除此之外,您可能应该更改您的 android 清单设置。如果您的初始屏幕仅显示 3 秒,则它不是您的主要活动。使用类别来处理特定的入口点。

    see this question for a good overview

    【讨论】:

      【解决方案2】:

      主Activity的打开是默认行为。

      处理通知的最佳方式是在后台处理它们,解析有效负载,然后进行相应的处理。你可以看到如何在后台处理通知here

      但是,如果您只是想在发送的通知本身中指定要启动哪个活动:您可以参考this

      因此,在onMessageReceived() 中,一旦您解析了有效负载并且知道要启动什么活动,只需为该活动创建一个 Intent 并启动它。

      【讨论】:

      • 我可以将其解析为对象。但我的主要活动只存在 3 秒,因为它是飞溅活动。所以我不想在那里解析对象
      猜你喜欢
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      • 2016-10-20
      相关资源
      最近更新 更多