- Activity 1像素崩拍螅活
- 前臺服務(wù)保活
- 賬戶同步拉活
- JobScheduler 拉活
- 雙進程守護
Activity 1像素钡萑福活
原理:通過監(jiān)聽手機息屏柄延、開屏廣播,關(guān)閉屏幕時,偷偷創(chuàng)建一個1像素的Activity搜吧,讓應(yīng)用成為前臺進程市俊;打開屏幕時,關(guān)閉該Activity滤奈。
缺點:存在一個Activity不夠干凈摆昧,同時需要在鎖屏后才能提權(quán)。
前臺 Service 毖殉蹋活
原理:啟動一個前臺服務(wù)绅你,從而拉高整個應(yīng)用的優(yōu)先級。
- API<18昭躺,通知圖標不會顯示
- API>=18并且API<26忌锯,可以啟動雙服務(wù),綁定同樣的ID领炫,然后stop一個服務(wù)偶垮,通知圖標將不顯示
- API>=26后,暫時沒有方式能夠隱藏通知
賬戶同步拉活
優(yōu)點:系統(tǒng)喚醒帝洪,比較穩(wěn)定
缺點:時間不能把控
JobScheduler 拉活
- JobScheduler允許在特定狀態(tài)與特定時間間隔周期執(zhí)行任務(wù)似舵。可以利用它的這個特點完成贝邢浚活的功能,效果即開啟一個定時器啄枕,與普通定時器不同的是其調(diào)度由系統(tǒng)完成。
- 在某些ROM可能并不能達到需要的效果族沃。
雙進程守護
原理:開啟兩個進程相互綁定频祝,一個進程被殺死后,另一個進程重新啟動被殺死的進程脆淹。
總結(jié):
- 沒有一種方式是能夠保證你的應(yīng)用一直存活在內(nèi)存中的常空,但是能延長時間也很不錯了。(應(yīng)用加入廠商手機白名單最一勞永逸8悄纭@觳凇!)
- 系統(tǒng)會優(yōu)先殺死占用內(nèi)存多的應(yīng)用烘嘱,所以想讓自己的應(yīng)用活的更久昆禽,還可以從性能上去優(yōu)化,讓其盡可能少的占用內(nèi)存蝇庭。