0

我在我的 中使用 kotlin 协程JobIntentService,所以onHandleWork我会启动我的协程,一旦这个任务结束,我需要通过取消Job. onDestroy服务启动后立即调用,因为我在其上启动协程,onHandleWork它不会阻塞当前线程。

完成任务后是否必须取消协程?

如果是,在androidService生命周期中什么时候释放协程资源

谁能帮我这个?

4

1 回答 1

0

完成任务后是否必须取消协程?

不,这不是强制性的。通常协程在 some 的上下文中启动CoroutineScope,并CoroutineScope与某个生命周期相关联,通常是Activityor Fragment。协程用于以顺序方式在后台线程中执行某些任务。

类的方法onHandleWork在后台线程上调用的,所以你可以在这里进行长时间的阻塞操作。我看不出你应该在这种方法中启动协程的原因。只需执行您的任务而不启动协程。JobIntentService

由于我正在启动协程,onHandleWork它不会阻塞当前线程。

在后台线程上调用方法onHandleWork,因此您不需要在那里启动协程。

于 2020-07-06T04:09:31.570 回答