1

我在 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 (获取它的相同实例)

4

2 回答 2

1

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

于 2017-04-26T09:03:49.083 回答
0

我最近在我的应用中实现了 Firebase 通知,我也遇到了同样的问题。问题是当通过 Firebase 控制台和应用程序发送的通知在后台时,该onMessageReceived方法不会被调用并且onNewIntent()方法返回 null。

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

于 2017-04-25T08:26:06.900 回答