gpt4 book ai didi

android - 我可以使用 ViewModel 向服务器发送数据吗?

转载 作者:行者123 更新时间:2023-11-29 00:59:19 25 4
gpt4 key购买 nike

目前,我正在使用 ViewModel在我的应用程序中加载节目列表。然后,我将它显示在主屏幕上。它在配置更改后仍然存在,并且不会引发内存泄漏,因为 ViewModel 具有此功能。

现在我需要做一些不同的事情。我需要登录一个使用 retrofit 2 和 rxjava 2 对端点进行网络调用的用户,他将键入电子邮件和密码,然后将被重定向到 MainActivity。其次,我还需要更新用户信息,他输入他的新信息,然后我发送到服务器。

我可以使用 ViewModel 登录用户或更新用户信息吗?如果不是,我应该使用什么?

我需要什么

这个改造 2 调用应该能够承受配置更改,如旋转屏幕,并且不会导致内存泄漏。

我尝试过的

  1. 在 MainActivity 中使用 enqueue() 方法调用改造。 Obs:这种方法不好,因为它在 ui 类中放置了很多东西,会引起内存泄漏。

  2. 使用静态内部类。 Obs:它无法在配置更改后存活,因为我需要在 onDestroy() 中取消任务。

  3. MVP 似乎可以让用户登录。

最佳答案

你可以查看谷歌示例项目,特别是这个类

https://github.com/googlesamples/android-architecture/blob/todo-mvvm-databinding/todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/addedittask/AddEditTaskViewModel.java

通常你会在模型 View 中触发网络操作,而实现网络逻辑的代码写在不同的类中(例如ApiManager),然后在你的ViewModel中获取结果

  • LoginViewModel 将拥有某个网络管理器类的对象

  • 当您点击登录时,viewmodel 将调用 networkManager.performLogin()

  • 然后将结果传递给 View 模型(RxJava 在这里很方便)。

  • 当您收到结果时,在您的 ViewModel 中执行您需要的任何处理

关于android - 我可以使用 ViewModel 向服务器发送数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52332326/

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