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

时间:2017-04-25 07:59:47

标签: android android-intent android-service android-push-notification

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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