我在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(获取相同的实例)
答案 0 :(得分:0)
我最近在我的应用中实施了Firebase通知,但我遇到了同样的问题。问题是当通过Firebase控制台和应用程序发送的通知在后台时,onMessageReceived
方法未被调用,onNewIntent()
方法返回null。
尝试通过PostMan(RestApi客户端)发送具有相同有效负载的推送通知。然后,您就可以使用接收方的onMessageRecieved
方法接收和获取数据。
答案 1 :(得分:0)
我找到了答案,我在Stackoverflow上读到了Bundles与Parcelable Objects有问题,并且最好将它们转换为Byte数组,然后将它们绑定到Bundles,我没有测试它,但是我绑定了JSON字符串本身并使用Bundle发送它,然后在onNewIntent()方法中解析它,而不是解析它并发送parcelable对象,它工作