我的应用程序关闭跟踪服务偶尔出现 RemoteServiceException$ForegroundServiceDidNotStartInTimeException

问题描述 投票:0回答:0

给定 ForegroundService 检查应用程序是否被用户滑动终止。

确实检查成功,但有时当应用程序进入后台时,应用程序会引发以下异常。

我在应用程序生命周期的 onStart 开始我的前台服务。我是否也应该停止 onStop 上的服务?

下面是我实现的一部分。

我的应用程序.kt:

private val lifecycleEventObserver = LifecycleEventObserver { source, event ->
    when (event) {
        Lifecycle.Event.ON_START -> {             
            startAppCloseService()
        }
        Lifecycle.Event.ON_STOP -> {

        }
        else -> {}
    }
}

……

onCreate() {

...
        ProcessLifecycleOwner.get().lifecycle.addObserver(lifecycleEventObserver)
    }



 fun startAppCloseService() {
        val intent = Intent(this, AppCloseService::class.java)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            startForegroundService(intent);
        } else {
            startService(intent);
        }
    }

AppCloseService.kt

class AppCloseService : Service() {
    override fun onBind(intent: Intent?): IBinder? {
        return null
    }

  override fun onTaskRemoved(rootIntent: Intent?) {
        super.onTaskRemoved(rootIntent)
        MyMixpanelManager.trackAppClose()
        GlobalScope.launch {
            delay(1000)
            cancel()
        }
        this.stopSelf()
    }

附言编译 SDK 版本 32,最低 SDK 24

android kotlin service
© www.soinside.com 2019 - 2024. All rights reserved.