8.mvvm中协程的使用

view代码

class MvvmActivity : BaseActivity<TestViewModel>() {
    override fun initData(savedInstanceState: Bundle?) {
        mViewModel = getViewModel<TestViewModel>()
        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<ArticleBean>()
    fun getArticles() {
        launch {
            val articles = mModel.getArticles()
            articleList.postValue(articles)
        }
    }
}

model代码

class TestModel(context: Context) : BaseModel(context) {
    suspend fun getArticles(): ArticleBean {
        return apiService.getArticle()
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。