用户单击通知firebase消息传递背景

时间:2017-08-16 12:32:23

标签: java android

如果用户点击通知(由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秒钟然后它会跳转到另一个活动。 我如何在其他活动中获得有效载荷? (不是主要活动)

2 个答案:

答案 0 :(得分:0)

主要活动的开放是默认行为。

处理通知的最佳方法是在后台处理它们,解析有效负载然后相应地做。您可以在后台here了解如何处理通知。

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

因此,在onMessageReceived()内部解析有效负载后,您知道要启动哪个活动,只需为该活动创建一个Intent并启动它。

答案 1 :(得分:0)

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