0
|
Damn Vegetables · 技术社区 · 3 年前 |
![]() |
1
2
我在下面的回答是基于这样一个假设,即您的“活动”正在完成,并且没有被重新创建(例如,在配置更改中会发生这种情况) viewModelScope是遵循ViewModel生命周期的一个特殊作用域。这意味着,如果调用了viewModel.onCleared(),则会取消viewModelScope。附带说明:如果您试图在取消的范围内启动协同程序,则不会发生任何事情。 现在看看 ViewModel Lifecycle 如果你的活动正在完成,那么在你的活动的onDestroy之后不久就会调用onCleared()。 说到你的代码,我认为你试图开始的工作永远不会开始,因为你的onCleared是在Dispatchers之前调用的。IO成功启动作业 第二个代码块(我在这里猜测)可能正在创建ViewModel的另一个实例,该实例在某种程度上能够在活动销毁后存活下来,因为它没有接收到活动生命周期调用(onDestroy之后没有发生其他事情)。 这可能是一个bug。在我看来,你不应该被允许在onDestroy内部向提供商请求视图模型 |
![]() |
danny · 如何在kotlin中使用图形2d与paint() 1 年前 |
![]() |
Vetalll · Java、JDBC在重复密钥更新通配符上的插入 1 年前 |
![]() |
jvargas · 如何获取上个月的第一天和最后一天以及一年的第一天 2 年前 |
![]() |
Michel · 在Android上后台播放音频超过一分钟 2 年前 |
![]() |
Ashish Joshi · 未使用导航图弹出片段 2 年前 |