我有两个班级,
MainActivity
和RegisterActivity
。在后者中,您可以输入姓名、年龄和电话号码。输入该信息后,我将其存储在 ViewModel
中(即 RegisterActivity
has-a ViewModel
),然后单击按钮完成 RegisterActivity
。问题是,我想从MainActivity
内部访问模型中存储的数据。
那么我怎样才能在两个活动之间分享
ViewModel
呢?我必须使用什么概念?
您无法跨 Activity 共享 ViewModel。这就是按照单一活动谈话使用多个活动的缺点之一。
viewModel 不能直接在活动之间共享,但是,如果您将 viewmodelfactory 存储在应用程序类中并从活动中检索工厂对象并访问 viewmodel,那么您可以共享视图模型的状态,我在 featureModule 应用程序中检查了这个 senario,它起作用了
您可以将要为 MainActivity 保留的数据放入您的 Application 类中或使用 SharedPreferences。
ViewModel 具有应用程序级别的生命周期。如果您将单个视图模型与两个或多个活动一起使用,那么在附加第一个活动后,当它附加到另一个活动时。那么可能会出现一些问题。