即使应用程序被杀,我也希望在后台运行服务。此功能在某些设备上正常运行。但是在oppo,mi和vivo手机中,如果app被杀,它就不会运行。我该如何为这些设备执行此操作
答案 0 :(得分:0)
要使服务在中国制造的设备中在后台连续运行,我们必须使用多种方式进行覆盖。
在应用程序设置中启用自动启动权限。对于自动启动代码,可以使用以下代码:-[https://github.com/judemanutd/AutoStarter] [1]
在中文设备中,如果尚未在应用程序设置中启用自动启动选项,则不会调用onTaskRemoved。
onTask仅在您允许自动启动权限之后,才会调用在中文设备中删除的。
在服务的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)
}