Android viewModel 和 Kotlin:viewModel 数据与谁共享?



我研究了viewModel类,并做了一个简单的测试来理解理论(初学者(。我搜索了其他来源,但我不确定此视图模型中的数据与谁共享。使用一个属性创建了一个简单的视图模型类:

class MyViewModel: ViewModel() {
var result: Int? = null
}

将值设置为从两个位置查看模型:

根活动

val model = ViewModelProviders.of(this).get(MyViewModel::class.java)
model.result = 6

片段 A:

val model = ViewModelProviders.of(activity).get(MyViewModel::class.java)
model.result = 9

从活动访问属性时,我看到 6。当它被片段 B 访问时(两个片段都是同一活动的子级(,我看到 9。没错?活动使用的视图模型仅对另一个活动可见?或者,如果视图模型由一个片段使用,那么它也只对其他片段可见?如果是,要看到彼此,我是否需要使用捆绑、参数、意图或其他东西?我会很感激你的帮助。

ViewModelProviders.of(activity)检索的视图模型仅共享给该活动及其子级(片段(。不能在多个活动之间共享 ViewModel,除非您创建自己的 ViewModelProvider 类。

如果需要在活动之间共享数据,则应遵循存储库模式,首先将数据存储在存储库(绑定到应用程序而不是活动(中,然后从该存储库检索其他活动中的数据。

相关内容

  • 没有找到相关文章

最新更新