kotlin 协程多层调用

package com.yxr.yxrmpapi.myapplication

import android.graphics.Color
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.coroutines.*


class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        btn_fetch_data.setOnClickListener {
            fetchData()
        }
    }

    private fun fetchData() {
        GlobalScope.launch(Dispatchers.Main) {
            val step1 = step1()
            txt_show_content.setTextColor(Color.RED)
            txt_show_content.text = step1

            val step2 = step2()
            txt_show_content.setTextColor(Color.GREEN)
            txt_show_content.text = step2

            val step3 = step3()
            txt_show_content.setTextColor(Color.BLUE)
            txt_show_content.text = step3

        }
    }

    private suspend fun step1(): String {
        withContext(Dispatchers.IO) {
            delay(2000)
        }
        return "step1 data"
    }

    private suspend fun step2(): String {
        withContext(Dispatchers.IO) {
            delay(2000)
        }
        return "step2 data"
    }

    private suspend fun step3(): String {
        withContext(Dispatchers.IO) {
            delay(2000)
        }
        return "step3 data"
    }
}



  

你可能感兴趣的:(kotlin 协程多层调用)