百度云推送,打开通知后,正常逻辑处理打开逻辑,每次点击通知,打开的是程序的启动页,按返回键,要打开的activity却出来了,刚开始以为是activity的启动模式的问题,试了几个也不行。后来看到这篇文章:
原文链接
和文章说的一样要打开的Activity的onPause()方法确实执行了。问题找到了,接下来开始找解决办法。
官网的Android客户端常见问题汇总 链接
- 消息到达后怎么控制跳转到Activity?
有两种方式实现:
客户端控制,在接收消息的Receiver里消息点击的回调方法onNotificationClicked里使用代码控制跳转,具体实现可以参考官网PushDemo;
服务端控制,使用自定义行为控制跳转,具体使用方法参考问题9。
在百度云微信公众号上的解释会更直接些。原文链接
按照上图的要求,再次推送时
问题就解决了,关于 open_type确实是可以设置的:点击通知后的行为(1:打开Url; 2:自定义行为;); open_type = 1,url != null:打开网页; open_type = 2,pkg_content = null:直接打开应用; open_type = 2,pkg_content != null:自定义动作打开应用 官网链接文档。
关于这类问题的处理思路:
首先确定问题的原因,之前看到这个问题以为是程序的问题,但是实在找不到原因,这是后就应该考虑是不是SDK本身的缺陷。
这个问题的排除思路:
- 启动模式的设置问题,排除方法 更改启动模式,调试。
- 查看相关Activity的生命周期函数。例如这个问题每次点击通知,打开的是程序的启动页,按返回键,要打开的activity却出来了,说明相关的页面已经执行,然后再看该activity的生命周期发现onPause()方法执行了,开始怀疑是否是SDK的问题,可以去官网上看看相关的问题汇总,问问技术客服,百度一下,可能就会一步一步找到相关问题,当然找一个刚踩过坑的人问问再好不过了。
我是IT小王,如果喜欢我的文章,可以扫码关注我的微信公众号