首页 > 解决方案 > 如何理解关于 viewmodel:activity 的 1:n 关系?

问题描述

我正在学习mvvm。研究这个,我有一个问题。我听说 viewmodel 可以有很多活动。关键是活动使用的一个视图模型共享它们的数据。因为我正在使用 koin 进行 DI。一个视图模型可以共享他们的数据吗?

private val mainViewModel : MainViewModel by viewModel() 

onCreate(){
    init()
    .....
}

init(){
        mainViewModel.searchItems.observe(this, Observer {
            it?.let {item->
                if(item.body !=null) {
                    Handler().postDelayed({         
                        page++
                        adapterAddItem(item.body)
                        setVisiblity(viewDataBinding.progressBar, View.GONE)
                    }, 300)
                }else{

                   showMessage(this,"No message")
                   setVisiblity(viewDataBinding.progressBar, View.GONE)
                }
            }


        })
}

标签: android

解决方案


首先,viewModel 没有活动,viewModel 不应该知道任何关于活动的信息。活动有视图模型。

对于共享数据,我会使用 Koin 的单曲。您可以注入到您的 viewModel 或活动中的那些。


推荐阅读