我在我的 中使用 kotlin 协程JobIntentService
,所以onHandleWork
我会启动我的协程,一旦这个任务结束,我需要通过取消Job
. onDestroy
服务启动后立即调用,因为我在其上启动协程,onHandleWork
它不会阻塞当前线程。
完成任务后是否必须取消协程?
如果是,在android
Service
生命周期中什么时候释放协程资源
谁能帮我这个?
我在我的 中使用 kotlin 协程JobIntentService
,所以onHandleWork
我会启动我的协程,一旦这个任务结束,我需要通过取消Job
. onDestroy
服务启动后立即调用,因为我在其上启动协程,onHandleWork
它不会阻塞当前线程。
完成任务后是否必须取消协程?
如果是,在android
Service
生命周期中什么时候释放协程资源
谁能帮我这个?
完成任务后是否必须取消协程?
不,这不是强制性的。通常协程在 some 的上下文中启动CoroutineScope
,并CoroutineScope
与某个生命周期相关联,通常是Activity
or Fragment
。协程用于以顺序方式在后台线程中执行某些任务。
类的方法onHandleWork
是在后台线程上调用的,所以你可以在这里进行长时间的阻塞操作。我看不出你应该在这种方法中启动协程的原因。只需执行您的任务而不启动协程。JobIntentService
由于我正在启动协程,
onHandleWork
它不会阻塞当前线程。
在后台线程上调用方法onHandleWork
,因此您不需要在那里启动协程。