gpt4 book ai didi

android - 在启动 Activity 中加载数据并将该数据或 ViewModel 共享到 MVVM 中的下一个 Activity

转载 作者:行者123 更新时间:2023-11-30 05:10:20 31 4
gpt4 key购买 nike

在我的应用程序中,我需要从加载到专用 View 模型中的服务器(使用改造)加载一些数据的提要。当前发生的事情是 View 模型在其构造函数中调用存储库,然后一旦获取数据,就会通知主 Activity 中的观察 fragment 并相应地更改用户界面。

但是,假设我想在 splash/launcher Activity 期间获取该数据,使用 MVVM 的实现是什么?我的意思是,由于 View 模型只与一个 Activity 相关联,我们不能在两个 Activity 之间共享相同的 View 模型。

那么我们如何在 Launcher Activity 中加载远程服务器数据,然后在 Main Activity 中使用它呢?

这种情况下的最佳做法是什么?

最佳答案

ViewModel 和 View 之间的关系是 one-to-many .这与 MVP 不同。您可以与其他 View 共享您的 ViewModel,并且可以为每个 View 使用单独的 ViewModel。

UPD:似乎您可以创建 1 个 Activity ,您的 Splash 和 Main Activity 的内容将是 fragment 。所以,从 splash 到 main 你将只交换 fragment 。如果您要在两个 fragment 中创建一个 ViewModel,如下所示:

 ViewModelProviders.of(getActivity()).get(MainViewModel.class);

代替:

ViewModelProviders.of(this).get(MainViewModel.class);

您将在两个 fragment 中获得相同的 ViewModel 实例。

关于android - 在启动 Activity 中加载数据并将该数据或 ViewModel 共享到 MVVM 中的下一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53851977/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com