我现在正在学习Android ViewModel。我有MainActivity和RegisterActivity两个活动,可以在其中输入姓名、年龄和电话号码。在RegisterActivity中输入完信息后,我将该信息放入ViewModel中,然后单击按钮完成RegisterActivity。问题是,我想在MainActivity中显示信息。那么我该如何在这两个活动之间共享ViewModel?我需要使用什么概念?
我现在正在学习Android ViewModel。我有MainActivity和RegisterActivity两个活动,可以在其中输入姓名、年龄和电话号码。在RegisterActivity中输入完信息后,我将该信息放入ViewModel中,然后单击按钮完成RegisterActivity。问题是,我想在MainActivity中显示信息。那么我该如何在这两个活动之间共享ViewModel?我需要使用什么概念?
您不能在多个活动之间共享ViewModel。这是使用多个活动的一个具体缺点,如Single Activity talk所述。
startActivityForResult()
/ Activity Result API都可以在任何Fragment中使用,无论您是否使用Navigation。 - ianhanniballakeViewModel不能在活动之间直接共享,但是如果您将ViewModelFactory存储在应用程序类中,并从活动中检索工厂对象并访问ViewModel,则可以共享ViewModel的状态。我在featureModule应用程序中检查了这种情况,它有效。
ViewModel 具有应用程序级别的生命周期。如果您在两个或更多活动中使用单个 ViewModel,那么在与第一个活动附加后,当它与其他活动附加时可能会出现一些问题。
startActivityForResult
和setResult
来传递这种类型的数据。 - momvart