gpt4 book ai didi

android - 应用程序在后台时未调用 Firebase onMessageReceived

转载 作者:太空狗 更新时间:2023-10-29 14:45:24 27 4
gpt4 key购买 nike

我正在使用 Firebase 并测试在应用程序处于后台时从我的服务器向我的应用程序发送通知。通知发送成功,它甚至出现在设备的通知中心,但是当通知出现时或者即使我点击它,我的 FCMessagingService 中的 onMessageReceived 方法也永远不会被调用。

当我在我的应用程序处于前台时对此进行测试时,调用了 onMessageReceived 方法并且一切正常。当应用程序在后台运行时出现问题。

这是有意为之的行为,还是有办法解决这个问题?

这是我的 FBMessagingService:

import android.util.Log;

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

public class FBMessagingService extends FirebaseMessagingService {

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.i("PVL", "MESSAGE RECEIVED!!");
if (remoteMessage.getNotification().getBody() != null) {
Log.i("PVL", "RECEIVED MESSAGE: " + remoteMessage.getNotification().getBody());
} else {
Log.i("PVL", "RECEIVED MESSAGE: " + remoteMessage.getData().get("message"));
}
}
}

最佳答案

这是按预期工作的,只有当您的应用程序在前台时,通知消息才会传送到您的 onMessageReceived 回调。如果您的应用程序处于后台或已关闭,则通知中心会显示一条通知消息,并且来自该消息的任何数据都会传递给因用户点击而启动的 Intent 通知。

您可以在 JSON 中指定一个 click_action 来指示当用户点击通知时应该启动的 Intent 。如果未指定 click_action,则使用主要 Activity 。

启动 Intent 后,您可以使用

getIntent().getExtras();

检索一个包含随通知消息一起发送的任何数据的集合。

有关通知消息的更多信息,请参阅 docs .

关于android - 应用程序在后台时未调用 Firebase onMessageReceived,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41011404/

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