如何在 Activity 之间共享 ViewModel?

问题描述 投票:0回答:4

我有两个班级,

MainActivity
RegisterActivity
。在后者中,您可以输入姓名、年龄和电话号码。输入该信息后,我将其存储在
ViewModel
中(即
RegisterActivity
has-a
ViewModel
),然后单击按钮完成
RegisterActivity
。问题是,我想从
MainActivity
内部访问模型中存储的数据。

那么我怎样才能在两个活动之间分享

ViewModel
呢?我必须使用什么概念?

android android-viewmodel
4个回答
30
投票

您无法跨 Activity 共享 ViewModel。这就是按照单一活动谈话使用多个活动的缺点之一。


4
投票

viewModel 不能直接在活动之间共享,但是,如果您将 viewmodelfactory 存储在应用程序类中并从活动中检索工厂对象并访问 viewmodel,那么您可以共享视图模型的状态,我在 featureModule 应用程序中检查了这个 senario,它起作用了


1
投票

您可以将要为 MainActivity 保留的数据放入您的 Application 类中或使用 SharedPreferences。


0
投票

ViewModel 具有应用程序级别的生命周期。如果您将单个视图模型与两个或多个活动一起使用,那么在附加第一个活动后,当它附加到另一个活动时。那么可能会出现一些问题。

© www.soinside.com 2019 - 2024. All rights reserved.