android - 当应用程序在后台时,协程流程会暂停
问题描述
我试图解决的问题是在flow
特定范围内谋生,例如。viewModelScope
. 看看这个简单的例子,一个流程在 while 循环中连续打印日志。
class TestViewModel : ViewModel(){
init {
viewModelScope.launch {
flow<Unit> {
while (true) {
delay(1000L)
Log.e("livingWhile", "tick")
}
}.collect()
}
}
}
一切正常(我每秒都收到一条日志),直到应用程序被置于后台(阻止按钮),然后在应用程序处于后台时大约 1-2 分钟后停止打印日志。看起来有些东西暂停了我的范围,我不确定是什么以及为什么。很少考虑 - 应用程序没有被杀死,viewmodel 是活的(onCleared
还没有被调用),流还没有被调用onCompletion
,while 循环刚刚停止。当应用程序回到前台时,它再次开始循环。
我在这里想念什么?
解决方案
推荐阅读
- bash - 如何调整此 bash 脚本以在 SSH 中成功运行 telnet 命令?
- r - 为桑基图构建交易数据
- codeigniter - 表格中的多行打印
- r - ggplot geom_point 绘制两个分类变量并填写缺失
- html - How to ensure Script sends an email containing an HTML table with full range of data?
- docker - docker - RHEL 上的 docker-credential-secretservice
- mysql - 如何在联结表上插入值
- python - 您可以免费使用 Google Geocoding API 多少次?
- opengl - 如何在感知投影中渲染大小恒定的圆?
- sql - 如何在 SQL DW 中使用汇总分组函数错误?