为何会存在这样的 问题,刚开始的时候我也搞不清楚,以前用极光的时候杀死程序后也会收到推送,但最近从新再去集成时就彻底很差使了,这我就纳闷了,虽然Google在高版本上的android上面不建议线程守护,因此将进程有关的Service都杀掉了,但旧版本仍是有这个功能的啊 !真尼玛,后来猜想估计是由于要适配6.0因此低版本的一些代码就删除了,形成低版本的也不行了,接下来分析一下这个问题。android
首先咱们把Android分为两类机型,一种是原生态的Android系统,好比Nexus,三星等机型,一种是深度定制的(固然不是全部定制机型都存在你说的问题),好比小米,魅族。 咱们分开来讨论:
1. 原生态系统:
App不打开,能够收到消息。 这个无论是老版SDK,仍是新版本SDK,都是这样的,在三星部分手机上能够。
2. 深度定制系统(目前有MIUI,魅族):
仍然分两种状况来讲明这个问题:
2.1 .1 友盟上来讲设备上有集成友盟消息推送的其它App已经打开(要求SDK版本是2.2.0以上),你的App不打开,也能收到消息。 你能够尝试在你的设备上安装咱们的Demo,以及大家的App,打开友盟demo,不打开大家的App,给大家的App发通知,是能收到的。
2.1.2 设备上全部集成友盟推送SDK的App都没有打开,那么就收不到消息。安全
2.2.1 极光的原理也大概是经过服务保持和服务器端的长链接,进行心跳检测,进行消息数据的传递的服务器
3. 解决方案
仍然分两种状况来讲明这个问题:
3.1 目前来讲友盟及极光等都没有解决这样的问题,确实在用户不给权限的状况下,很难处理。网络
3.2 在集成友盟/极光的基础上集成小米推送、华为推送。
3.3 在小米、华为、oppo等手机上若是想让APP杀死后还收到推送的话,只能让用户手动操做,如下是在极光看到的一些步骤:性能
因为第三方 ROM 的管理软件须要用户手动操做.net
小米【MIUI】线程
华为【Emotion】blog
魅族【Flyme】进程
VIVO【Funtouch OS】内存
OPPO【ColorOS】
今本人亲自尝试,按照上列步骤在对应的手机中开启权限,即便APP杀死也能收到推送,但这种方案太很差了,只能期待第三方尽快解决。
原文地址:http://blog.csdn.net/u013776057/article/details/51671490