一、坑从何来
在华为mate9等部分华为手机上,当应用的进程被杀死时,一般情况下,华为手机锁屏进程都会被杀死(除非开启自启动权限),使用华为推送推送消息到手机端时,通知栏收到消息后点击直打开应用,不会去回调推送的onEvent()方法。导致不能针对消息进行操作,比如保存本地数据库等...
二、如何填坑呢?
一般情况下服务端在下发消息使用doings=1(即直接打开应用)发送消息给华为服务器。
使用这种方法推送消息,用户点击通知栏消息,系统会携带推送数据发送广播给App,但是在某些华为手机上会因为系统安全软件拦截广播,导致只打开应用,不能触发广播onReceive方法!
询问华为推送的客服大大之后,给出的建议是:
将doings改为2,即通过自定义动作打开应用。
三、这是重点哈!
当我们发现这个问题时,我们的前期版本已上线,那时候华为Mate9还没上市,所以服务端改造起来还需要兼容老版本!
希望你们看到这篇文章的时候,你们还没有发版,哈哈哈!
最好还是华为把这个Bug给修复了!
华为推送的客服大大态度还是很好滴,还是很认真负责滴!