android flow用法

//改文章只是为了记录 
//改文章只是为了记录 
//改文章只是为了记录 
  fun makeFlow() = flow {
        LogUtils.e(tag, "emit flow->", "sending first value")
        emit(1)
        LogUtils.e(tag, "emit flow->", "first value collected, sending another value")
        emit(2)
        LogUtils.e(tag, "emit flow->", "second value collected, sending a third value")
        emit(3)
        LogUtils.e(tag, "emit flow->", "done")
    }

    fun listFlow() = flow<List<String>> {
        emit(list())
    }

    suspend fun list(): List<String> {
        delay(6666L)
        return mutableListOf<String>("1", "2", "3")
    }
//测试
        GlobalScope.launch {
            withContext(Dispatchers.IO) {
                val flowCollector = object : FlowCollector<Int> {
                    override suspend fun emit(value: Int) {
                        LogUtils.e(tag, "emit->", value)
                    }
                }
                Test.makeFlow().collect(flowCollector)
                Test.listFlow().collect(object : FlowCollector<List<String>> {
                    override suspend fun emit(value: List<String>) {
                        LogUtils.e(tag, "emit List->", GsonUtils.toJson(value))
                    }
                })
            }
        }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。