8.mvvm中协程的使用

view代码

class MvvmActivity : BaseActivity() {
    override fun initData(savedInstanceState: Bundle?) {
        mViewModel = getViewModel()
        mViewModel?.articleList?.observe(this, Observer {
            LogUtils.i(it.errorCode)
        })
        mViewModel?.getArticles()
    }

    override fun initView(savedInstanceState: Bundle?): Int = R.layout.activity_mvvm
}

viewmodel代码

class TestViewModel(
    private val mModel: TestModel
) : BaseViewModel() {
    val articleList = MutableLiveData()
    fun getArticles() {
        launch {
            val articles = mModel.getArticles()
            articleList.postValue(articles)
        }
    }
}

model代码

class TestModel(context: Context) : BaseModel(context) {
    suspend fun getArticles(): ArticleBean {
        return apiService.getArticle()
    }
}

你可能感兴趣的:(8.mvvm中协程的使用)