暂停功能未收集流量

问题描述

suspend fun showOrder(){
  flow<Int> {
            for (i in  0..10){
                emit(i)
                delay(1000)
            }
        }.collect {
            Timber.d("test $it")
        }
 }

我只有第一个发射:“ 0”,仅此而已。有什么问题吗?

我从android调用函数

解决方法

该代码有效。最可能的问题是您正在测试中运行它,并且程序在收集流之前完成。尝试将其包装在runBlocking中。

,

我打电话来是为了响应通知。如果通知是从Foreground(Firebase)发出的,则该功能的作用范围仅限于该服务。由于该服务的生命周期非常短,因此我的函数执行被取消。这就是这种行为的原因。因此,我将范围限制为MainActivity,现在它可以按预期工作。