前台服务在下班后停止



我使用 Kotlin 做了一个前台服务。它有效,但是运行七个小时后我的服务停止,我的应用程序返回到其第一页(登录页面(。但是停止服务的唯一方法是在我单击"停止服务"按钮时执行,那么如果我没有按任何按钮,为什么我的服务在 7 小时后停止呢?我正在使用Moto G7,Android 9.0

class RastreioService : Service() {
companion object {
var serviceAtivado = false //service activated
}
override fun onBind(intent: Intent?): IBinder? {
TODO("Not yet implemented")
}
override fun onCreate() {
super.onCreate()
serviceAtivado = true
val notificationIntent = Intent(this, RastreioService::class.java)
val pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
val notification = Notification.Builder(this, "1")
.setSmallIcon(R.drawable.ic_gps_ativo)
.setContentTitle("Localização Sendo Acessada")
.setContentText("A sua localização está sendo acessada")
.setContentIntent(pendingIntent)
.build()
startForeground(1, notification)
/*request location methods*/
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return START_NOT_STICKY
}
override fun onDestroy() {
serviceAtivado = false
super.onDestroy()
this.gerenciadorDeLocalizacao.DesativarBuscaPorLocalizaca()
}
}

如果需要,操作系统仍然可以关闭服务,但之后可以恢复。 在onStartCommand您返回START_NOT_STICKY您可以使用它不会重新启动服务。 您可以使用START_REDELIVER_INTENT保存服务的进度,并从离开的位置重新启动它。 链接到文档

前台服务仍然可以作系统终止,您无法保证该服务将永远持续下去。前台服务只是降低了被杀死的可能性

相关内容

  • 没有找到相关文章

最新更新