我可以使用 ViewModel 向服务器发送数据吗?
Can I use ViewModel to send data to the server?
目前,我正在使用 ViewModel 在我的应用程序中加载节目列表。然后,我将它显示在主屏幕上。它在配置更改后仍然存在,并且不会引发内存泄漏,因为 ViewModel 具有此功能。
现在我需要做一些不同的事情。我需要登录一个使用 retrofit 2 和 rxjava 2 对端点进行网络调用的用户,他将键入电子邮件和密码,然后将被重定向到 MainActivity。其次,我还需要更新用户信息,他输入他的新信息,然后我发送到服务器。
我可以使用 ViewModel 来登录用户或更新用户信息吗?如果没有,我应该用什么来代替?
我需要的
这个改造 2 调用应该能够承受配置更改,如旋转屏幕,并且不会导致内存泄漏。
我试过的
在 MainActivity 中使用 enqueue() 方法调用改造。 Obs: 这种方法不好,因为它在 ui class 中放了很多东西,会引起内存泄漏。
使用静态内部 classes。 Obs: 它无法在配置更改后存活,因为我需要在 onDestroy() 中取消任务。
MVP 似乎可以登录用户。
您可以查看 google 示例项目,特别是这个 class
通常你会在模型视图中触发网络操作,而实现网络逻辑的代码写在不同的class(例如ApiManager
),然后得到结果在你的 ViewModel
LoginViewModel
将拥有某个网络管理员的对象 class
点击登录时,viewmodel会调用networkManager.performLogin()
然后将结果传递给视图模型(RxJava 在这里很方便)。
当您收到结果时,在您的 ViewModel 中执行您需要的任何处理
目前,我正在使用 ViewModel 在我的应用程序中加载节目列表。然后,我将它显示在主屏幕上。它在配置更改后仍然存在,并且不会引发内存泄漏,因为 ViewModel 具有此功能。
现在我需要做一些不同的事情。我需要登录一个使用 retrofit 2 和 rxjava 2 对端点进行网络调用的用户,他将键入电子邮件和密码,然后将被重定向到 MainActivity。其次,我还需要更新用户信息,他输入他的新信息,然后我发送到服务器。
我可以使用 ViewModel 来登录用户或更新用户信息吗?如果没有,我应该用什么来代替?
我需要的
这个改造 2 调用应该能够承受配置更改,如旋转屏幕,并且不会导致内存泄漏。
我试过的
在 MainActivity 中使用 enqueue() 方法调用改造。 Obs: 这种方法不好,因为它在 ui class 中放了很多东西,会引起内存泄漏。
使用静态内部 classes。 Obs: 它无法在配置更改后存活,因为我需要在 onDestroy() 中取消任务。
MVP 似乎可以登录用户。
您可以查看 google 示例项目,特别是这个 class
通常你会在模型视图中触发网络操作,而实现网络逻辑的代码写在不同的class(例如ApiManager
),然后得到结果在你的 ViewModel
LoginViewModel
将拥有某个网络管理员的对象 class点击登录时,viewmodel会调用
networkManager.performLogin()
然后将结果传递给视图模型(RxJava 在这里很方便)。
当您收到结果时,在您的 ViewModel 中执行您需要的任何处理