在没有实时数据的情况下使用 ViewModel 可以吗
Posted
技术标签:
【中文标题】在没有实时数据的情况下使用 ViewModel 可以吗【英文标题】:Is it Fine to use ViewModel without Live Data 【发布时间】:2018-11-02 03:16:51 【问题描述】:我在androidViewModel
类中使用LiveData
,我需要等待响应,但在某些情况下我需要检查本地shared preference
的一些值,这不会阻塞任何线程。
对于这些场景,我没有使用LiveData
。这就是我在activity class
中所做的事情。
homeViewModel.sendTokenToServer().observe(this, isFCMSendToServer ->
Toast.makeText(this, "FCM Token Observer called", Toast.LENGTH_SHORT).show();
);
//Without Live Data
if(homeViewModel.isUpgradeAvailable())
displayAlertMessage();
我想知道上述方法是否可以,或者我们必须为ViewModel
中的每个方法使用LiveData
或其他一些观察者
【问题讨论】:
LiveData
可以是同步和异步调用的一部分。无需切换到典型的侦听器模式。
【参考方案1】:
AFAIK ViewModel
和 LiveData
没有紧密连接。因此,您没有义务使用任何观察者。例如在this 示例应用程序中,ViewModel
用于通过方向更改保留一些数字。因此ViewModel
用作一个容器(类似于无头片段),您可以在其中存储要通过方向更改保留的数据。
【讨论】:
以上是关于在没有实时数据的情况下使用 ViewModel 可以吗的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有代码隐藏的情况下处理 ViewModel 中的 WPF 路由命令?
SwiftUI 如何在不使用 List 的情况下从 @ObservedObject ViewModel 获取 Firebase 数据
我可以在没有实时数据库的情况下访问 Firebase 存储吗