使用極光/友盟推送,APP進程殺死后為什么收不到推送(轉)


為什么會存在這樣的 問題,剛開始的時候我也搞不清楚,之前用極光的時候殺死程序后也會收到推送,但最近重新再去集成時就完全不好使了,這我就納悶了,雖然Google在高版本上的android上面不建議線程守護,所以將進程有關的Service都殺掉了,但舊版本還是有這個功能的啊 !真尼瑪,后來猜測估計是因為要適配6.0所以低版本的一些代碼就刪除了,造成低版本的也不行了,接下來分析一下這個問題。

首先我們把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 的管理軟件需要用戶手動操作

 

  • 小米【MIUI】

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

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

    • 自啟動管理:需要把應用加到【自啟動管理】列表,否則殺進程或重新開機后進程無法開啟
    • 通知欄推送:關閉應用通知則收到消息不會有任何展示
    • 省電管理: 安全中心里設置省電模式,在【待機耗電管理】中允許應用待機時,保持允許,否則手機休眠或者應用閑置一段時間,無法正常接收消息。
  • VIVO【Funtouch OS】

    • 內存一鍵清理:需要將應用加入【白名單】列表,否則系統自帶的“一鍵加速”,會殺掉進程
    • 自啟動管理:需要將應用加入“i管家”中的【自啟動管理】列表,否則重啟手機后進程不會自啟。但強制手動殺進程,即使加了這個列表中,后續進程也無法自啟動。
  • OPPO【ColorOS】

    • 凍結應用管理:需要將應用加入純凈后台,否則鎖屏狀態下無法及時收到消息
    • 自啟動管理:將應用加入【自啟動管理】列表的同時,還需要到設置-應用程序-正在運行里鎖定應用進程,否則殺進程或者開機后進程不會開啟,只能手動開啟應用

 

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

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM