andorid如何保證service不被殺死(精簡版)
阿新 • • 發佈:2019-02-19
Android 程序不死從3個層面入手:
A.提供程序優先順序,降低程序被殺死的概率
方法一:監控手機鎖屏解鎖事件,在螢幕鎖屏時啟動1個畫素的 Activity,在使用者解鎖時將 Activity 銷燬掉。
方法二:啟動前臺service。
方法三:提升service優先順序:
在AndroidManifest.xml檔案中對於intent-filter可以通過android:priority = "1000"這個屬性設定最高優先順序,1000
是最高值,如果數字越小則優先順序越低,同時適用於廣播。
B. 在程序被殺死後,進行拉活
方法一:註冊高頻率廣播接收器,喚起程序。如網路變化,解鎖螢幕,開機等
方法二:雙程序相互喚起。
方法三:依靠系統喚起。
方法四:onDestroy方法裡重啟service:service +broadcast 方式,就是當service走ondestory的時候,傳送一個自
定義的廣播,當收到廣播的時候,重新啟動service;
C. 依靠第三方
根據終端不同,在小米手機(包括 MIUI)接入小米推送、華為手機接入華為推送;其他手機可以考慮接入騰訊信鴿
或極光推送與小米推送做 A/B Test。
不能一味的撈現成的,從三方面入手,定準大方向,定能破此陣。