我没有在 MainActivity 的 onNewIntent 方法中获取我的包的数据

I don't get my bundle's data in onNewIntent method of MainActivity

我在我的 FireBaseService 中收到推送通知,我想将它的数据发送到 MainActivity,下面是我的代码:

        Intent intent = new Intent("PUSH_NOTIFICATION");
    intent.setClassName(this, MainActivity.class.getName());
    Bundle bundle = new Bundle();
    bundle.putParcelable("data", data);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.putExtra("notification bundle", bundle);
    startActivity(intent);

onNewIntent() 被调用但是当我解析它时,它给了我空数据。我做错了什么吗?

提前致谢。

编辑:我的 MainActivity 启动模式是 singleTop(以获得它的相同实例)

我最近在我的应用程序中实现了 Firebase 通知,但我遇到了同样的问题。问题是当通过 Firebase 控制台和应用程序在后台发送通知时,onMessageReceived 方法没有被调用,onNewIntent() 方法 returns 为空。

尝试通过 PostMan(RestApi 客户端)发送具有相同负载的推送通知。然后,您将能够在接收器的 onMessageRecieved 方法中接收和获取数据。

我找到了答案,我在 Whosebug 上的某个地方读到 Bundles 与 Parcelable Objects 有问题,最好将它们转换为字节数组然后将它们绑定到 Bundles,我没有测试它,但我绑定 JSON 字符串本身并用 Bundle 发送它,然后在 onNewIntent() 方法中解析它,而不是解析它并发送 parcelable 对象,它起作用了