標籤:
為什麼會存在這樣的 問題,剛開始的時候我也搞不清楚,之前用極光的時候殺死程式後也會收到推送,但最近重新再去整合時就完全不好使了,這我就納悶了,雖然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
使用極光/友盟推送,APP進程殺死後為什麼收不到推送(轉)