Android Kotlin Coroutines ktx扩展

本篇文章主要讲的是,kotlin 协程在 ktx 上的扩展

lifecycle 扩展
对于 lifecycle 的扩展,已经在 以前的文章中讲过了

主要的依赖

implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"

viewModel 扩展
对于 viewModel 的扩展,已经在 以前的文章中讲过了

主要的依赖

implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'

liveData 扩展
主要的依赖

 implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0'

官网链接如下:

具体使用举例如下:

class MainActivity : AppCompatActivity() {

    val user: LiveData = liveData {
        //模拟网络请求
        var user = getUser()

        if (user == "ok") {
            //模拟请求成功
            emit("ok")
        } else {
            //模拟请求失败
            emit("failed")
        }
    }

    /**
     * 模拟网络请求
     */
    suspend fun getUser(): String {
        var ret = withContext(Dispatchers.Default) {
            "ok"
        }
        return ret
    }

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

        user.observe(this, {
            Log.d("yy--", "name1:$it")
        })

    }
}

你可能感兴趣的