美文网首页
android flow用法

android flow用法

作者: Android刘东 | 来源:发表于2022-07-27 17:39 被阅读0次
//改文章只是为了记录 
//改文章只是为了记录 
//改文章只是为了记录 
  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))
                    }
                })
            }
        }

相关文章

网友评论

      本文标题:android flow用法

      本文链接:https://www.haomeiwen.com/subject/bipxwrtx.html