如何在onStop()方法中取消Kotlin协程作业

时间:2020-04-01 13:26:14

标签: kotlin coroutine

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)


        scope = CoroutineScope(Dispatchers.IO)
        job = scope.async {

            Log.e("TAG", "enter")
            while (isActive) {
                Log.e("TAG", "$isActive   Do something")
            }
        }

    }

override fun onStop() {
        super.onStop()
        job.cancel()
    }

我需要在作业中执行一些无限循环,并且我想在此活动关闭时取消作业。

因此,我尝试在onStop()方法中使用job.cancel。但是循环继续,仍然输出“ true,执行某些操作”

我知道可以用Thread或ThreadPool代替它,但是有什么方法可以用kotlin coroutine来解决

0 个答案:

没有答案