[英]Foreground service killed in Doze mode for some devices like oppo,vivo,MI, etc
[英]Background Service is not restarting after killed in oppo, vivo, mi android version 7.1.2
即使應用程序被終止,我也想在后台運行該服務。 此功能在某些設備上運行良好。 但是在 oppo、mi 和 Vivo 手機中,如果應用程序被殺死,它就不會運行。 我該如何為這些設備執行此操作
為了使服務在中國制造的設備中在后台持續運行,我們必須使用多種方式來覆蓋它。
在應用程序設置中啟用自動啟動權限。 對於自動啟動代碼,您可以使用:- [https://github.com/judemanutd/AutoStarter][1]
如果您尚未在應用設置中啟用自動啟動選項,則在中文設備中不會調用 onTaskRemoved。
只有在您允許自動啟動權限后,才會調用中文設備中的 onTaskRemoved。
在服務的 onTaskRemoved 添加此代碼片段:-
override fun onTaskRemoved(rootIntent: Intent?) {
log("onTaskRemoved is called::")
val restartServiceTask = Intent(applicationContext, EndlessService::class.java)
restartServiceTask.setPackage(packageName)
restartServiceTask.action = Actions.START.toString()
val pendingIntent = PendingIntent.getService(this, 1, restartServiceTask, PendingIntent.FLAG_ONE_SHOT)
val alarmManager = getSystemService(ALARM_SERVICE) as AlarmManager
alarmManager[AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 1000] =
pendingIntent
super.onTaskRemoved(rootIntent)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.