当前位置: 首页 > 知识库问答 >
问题:

Android通知:未调用onMessageReceived

季炯
2023-03-14

首先,这不是因为应用程序在后台。

通知随数据消息负载一起发送。在游戏控制台中,它表示消息已“确认”,因此它们正在到达设备。对于大多数用户,调用了onMessageReceived方法,但对于少数用户,它不是。为什么会这样?

AndroidManifest:

<service android:name=".push.MyFirebaseInstanceIDService">
    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
    </intent-filter>
</service>
<service android:name=".push.MyFirebaseMessagingService">
    <intent-filter>
         <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>

MyFirebaseMessagingService:

public class MyFirebaseMessagingService extends FirebaseMessagingService {

...
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
...
}

共有3个答案

阳建弼
2023-03-14

问题必须与firebase令牌注册有关。您是否已在以下功能中记录令牌生成:

public class TixDoFirebaseIntentService extends FirebaseInstanceIdService {
    @Override
    public void onTokenRefresh() {
        Common.log("FirebaseToken :"+FirebaseInstanceId.getInstance().getToken());
    }
}

可能存在这样一种情况,即用户已经安装了应用程序,但尚未打开,因此不会生成令牌。

东门晓博
2023-03-14

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

您可以指定一个click_action来指示当用户点击通知时应该启动的意图。如果没有指定click_action,则使用主活动。

当意图启动时,您可以使用它们

getIntent().getExtras();

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

第二种方法

重写FirebaseMessagingService类中的handleIntent(Intent Intent)方法。

无论应用程序处于前台、后台还是终止状态,每次都会调用方法。

有关通知消息的更多信息,请参阅文档。

彭英逸
2023-03-14

发生这种情况的主要原因之一是因为特定用户在使用应用程序时更改了他的登录详细信息或使用了不同的帐户。在这种情况下,特定的设备令牌将接收通知,但由于他使用的是不同的帐户,因此不会显示通知。解决此问题的一种方法是,每次用户注销并保存新创建的设备令牌时,当用户再次登录时,清除用户的设备令牌。这样设备令牌就会保持更新,用户将收到通知。

 类似资料:
  • 我遇到了有趣的意图工作流处理。我创建了一个通知,如下所示: 当通知到达用户时,我希望当他点击它时 MainActivity.class将处理此意图。我在中处理有关意图的信息。 如果我点击应用程序外的通知,一切正常。活动正确地处理了这个意图并显示了我所期望的。 但是当我在我的应用程序中点击通知时,我的和没有触发。我以为它会被创建为的新实例 你能解释一下这是默认行为吗?我应该如何处理这种情况? 在测试

  • 当用户未连接到xmpp时,我正在使用FCM通知进行聊天。 FCM中有两种通知模式1。通知消息2。数据消息 如果我的应用程序最近被清除,我将不会使用数据消息作为通知消息 这种方法适用于除奥利奥以外的所有版本。 对于Oreo,我只有在应用程序未连接到xmpp且处于前台时才会收到通知。我的onMessageReception方法正在被调用。 但当该应用程序仅为奥利奥而被删除或从最近的应用程序中删除时,情

  • 当我点击it时,从服务器收到的通知应用程序已打开,但onNotification从未调用。我将其放入componentDidMount()中,并在App中放入构造函数。但是从来没人叫过。。帮助

  • 当应用程序被强制退出时,似乎不会调用函数。我的印象是,无论应用程序处于何种状态,都会调用该函数,但似乎只有在应用程序已经在后台运行时才会调用该函数。如果应用程序尚未使用新的iOS 7远程通知后台模式运行,是否有办法在后台唤醒该应用程序?

  • 我的应用程序正确接收到通知,但无法显示带有接收信息的通知弹出(如果应用程序打开)。 注意:如果应用程序在后台,则通知将毫无问题地显示。 我以以下方式接收通知: 然后它调用这个(按照我的理解,它应该显示通知): Firebase通知 null 我的问题就出在这条线上 无法显示通知 更新我已经阅读了关于Android通知的更多信息 https://developer.android.com/guide

  • 在我的项目中,当应用程序正在运行时,我必须接收FCM推送通知。当应用程序正在运行时,onMessageReceived()调用一个运行良好的应用程序,但问题是当应用程序被终止或在后台,onMessageReceived()没有调用,但通知托盘上显示FCM通知时