現(xiàn)狀
由于各種App后臺常駐,互相喚醒的泛濫,google越來越嚴(yán)格的限制了App在后臺長時間活動织堂。在高版本android中,幾乎沒有任何手段可以100%保證app后臺長期存在颓遏。與其研究各種復(fù)雜而效果不見得好的灰色崩晏辏活手段付枫,在一些需求中不妨考慮前臺迸胗瘢活。除了通知欄會有一個提示外阐滩,前臺倍颍活的穩(wěn)定性非常高,并且是官方認(rèn)可的手法掂榔。
前臺奔绦В活
目前各大廠商android版本已經(jīng)更新到android8.0也就是api26,在android8.0上創(chuàng)建前臺服務(wù)需要使用startForegroundService()方法,然后必須在service中的oncreate()中調(diào)用startForeground()設(shè)置notification.否則5s后將會拋出 null Notification 或者 did not then callService.startForeground異常
1.首先創(chuàng)建一個服務(wù)
2.在服務(wù)中的oncreate()方法中創(chuàng)建notification(8.0中最好使用NotificationChannel()方法并且一定要設(shè)置notification的id),然后用startForeground()方法傳入notification.
3.調(diào)用startForegroundService()啟動服務(wù)
4.為了防止最近任務(wù)清理內(nèi)存殺死應(yīng)用,還可以在Mainifest中設(shè)置android:excludeFromRecents="true" 屬性使應(yīng)用不顯示在最近任務(wù)列表中防止被用戶清除.