最近在项目里面用到了信鸽平台推送,推送通知,接收到通知后打开相应页面。按照官方文档,自定义一个类继承至XGPushBaseReceiver,然后在里面做一系列的操作,当然没问题,如果是消息透传那还是可以的,但如果是获取通知点击打开,是会重新启动应用程序的,所以纠结了半天,放弃这个方法,在这里面不做任何操作,把打开通知放到应用的第一个activity的onResume里面,
@Override protected void onResume() { super.onResume(); // 判断是否从推送通知栏打开的 XGPushClickedResult message = XGPushManager.onActivityStarted(this); if (message != null) { // 获取自定义key-value String customContent = message.getCustomContent(); //拿到数据自行处理 if (isTaskRoot()) { return; } //如果有面板存在则关闭当前的面板 finish(); } }
再在打开的页面接收就行了,这样就不会每次都打开应用,这样用户体验不较好。