使用極光/友盟推送,APP進程殺死後爲何收不到推送(轉)

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

    • 自啓動管理:須要把應用加到【自啓動管理】列表,不然殺進程或從新開機後進程沒法開啓
    • 通知欄設置:應用默認都是顯示通知欄通知,若是關閉,則收到通知也不會提示
    • 網絡助手:能夠手動禁止已安裝的第三方程序訪問2G/3G和WIFI的網絡和設置之後新安裝程序是否容許訪問2G/3G和WIFI的網絡
    • MIUI 7 神隱模式: 容許應用進行自定義配置模式,應用在後臺保持聯網可用,不然應用進入後臺時,應用沒法正常接收消息。【設置】下電量和性能中【神隱模式】
  • 華爲【Emotion】blog

    • 自啓動管理:須要把應用加到【自啓動管理】列表,不然殺進程或從新開機後進程不會開啓,只能手動開啓應用
    • 後臺應用保護:須要手動把應用加到此列表,不然設備進入睡眠後會自動殺掉應用進程,只有手動開啓應用才能恢復運行
    • 通知管理:應用狀態有三種:提示、容許、禁止。禁止應用則通知欄不會有任何提醒
  • 魅族【Flyme】進程

    • 自啓動管理:須要把應用加到【自啓動管理】列表,不然殺進程或從新開機後進程沒法開啓
    • 通知欄推送:關閉應用通知則收到消息不會有任何展現
    • 省電管理: 安全中內心設置省電模式,在【待機耗電管理】中容許應用待機時,保持容許,不然手機休眠或者應用閒置一段時間,沒法正常接收消息。
  • VIVO【Funtouch OS】內存

    • 內存一鍵清理:須要將應用加入【白名單】列表,不然系統自帶的「一鍵加速」,會殺掉進程
    • 自啓動管理:須要將應用加入「i管家」中的【自啓動管理】列表,不然重啓手機後進程不會自啓。但強制手動殺進程,即便加了這個列表中,後續進程也沒法自啓動。
  • OPPO【ColorOS】

    • 凍結應用管理:須要將應用加入純淨後臺,不然鎖屏狀態下沒法及時收到消息
    • 自啓動管理:將應用加入【自啓動管理】列表的同時,還須要到設置-應用程序-正在運行裏鎖定應用進程,不然殺進程或者開機後進程不會開啓,只能手動開啓應用

 

今本人親自嘗試,按照上列步驟在對應的手機中開啓權限,即便APP殺死也能收到推送,但這種方案太很差了,只能期待第三方儘快解決。

 

原文地址:http://blog.csdn.net/u013776057/article/details/51671490

相關文章
相關標籤/搜索