簡體   English   中英

oppo, vivo, mi android version 7.1.2 殺死后后台服務不重啟

[英]Background Service is not restarting after killed in oppo, vivo, mi android version 7.1.2

即使應用程序被終止,我也想在后台運行該服務。 此功能在某些設備上運行良好。 但是在 oppo、mi 和 Vivo 手機中,如果應用程序被殺死,它就不會運行。 我該如何為這些設備執行此操作

  1. 我在 Oppo、Vivo、Mi 等手機上遇到了同樣的問題,從最近的應用程序中刪除后,應用程序被殺死甚至服務被殺死

    解決方案:我有添加自啟動權限,像這樣在我的應用程序和它的工作。

  2. 解決此問題后,由於 DOZE 模式,我的應用程序在后台運行一段時間后被凍結/終止

解決方案:對於這種情況, 有效,現在我的應用程序在任何設備的后台運行

為了使服務在中國制造的設備中在后台持續運行,我們必須使用多種方式來覆蓋它。

  1. 在應用程序設置中啟用自動啟動權限。 對於自動啟動代碼,您可以使用:- [https://github.com/judemanutd/AutoStarter][1]

  2. 如果您尚未在應用設置中啟用自動啟動選項,則在中文設備中不會調用 onTaskRemoved。

  3. 只有在您允許自動啟動權限后,才會調用中文設備中的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM