【问题标题】:Should I cancel coroutine in android activity?我应该取消android活动中的协程吗?
【发布时间】:2020-07-21 08:00:21
【问题描述】:

我在这里启动协程来直接在 Activity 中处理没有 ViewModel 的改造调用:

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

    job = Job()
    coroutineScope = CoroutineScope(Dispatchers.Main)
}

改装电话:

 private fun changePassCall(user: User) {
        coroutineScope.launch {
        var changePassDeferred = UserApiObj.retrofitServiceCoroutine.changePass(user, bearerToken)
        try {
            var response = changePassDeferred?.await()
            Toast.makeText(this@ChangePassActivity, "Pass changed", Toast.LENGTH_SHORT).show()
        } catch (e: Exception) {
            progressDialog.dismiss()
        }
    }
}

我在这里取消它:

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

【问题讨论】:

    标签: android android-activity retrofit kotlin-coroutines


    【解决方案1】:

    您可以使用生命周期范围来启动协程,而不必再创建或取消它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-06
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      相关资源
      最近更新 更多