爲何會存在這樣的 問題,剛開始的時候我也搞不清楚,以前用極光的時候殺死程序後也會收到推送,但最近從新再去集成時就徹底很差使了,這我就納悶了,雖然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