Android 使用LiveData和ViewModel而不使用Room

Android 使用LiveData和ViewModel而不使用Room,android,android-architecture-components,android-livedata,android-viewmodel,android-mvvm,Android,Android Architecture Components,Android Livedata,Android Viewmodel,Android Mvvm,对于android MVVM体系结构,在我看到的所有示例中,人们要么使用Room存储/检索数据,要么通过Repository类直接从API调用获取数据 我既不做API调用,也不使用我有房间的数据库来存储数据。但我需要我的ViewModel从存储库中获取数据并将其传递给我的Activity 您的存储库类是否可以从应用程序类继承,以便在不打算使用空间在本地保存数据时可以保存静态变量/伴随对象 处理这种情况的好方法是什么?一般来说,在软件工程中,存储库用于从应用程序的其余部分(通常直接从业务层)抽象数

对于android MVVM体系结构,在我看到的所有示例中,人们要么使用Room存储/检索数据,要么通过Repository类直接从API调用获取数据

我既不做API调用,也不使用我有房间的数据库来存储数据。但我需要我的ViewModel从存储库中获取数据并将其传递给我的Activity

您的存储库类是否可以从应用程序类继承,以便在不打算使用空间在本地保存数据时可以保存静态变量/伴随对象


处理这种情况的好方法是什么?

一般来说,在软件工程中,存储库用于从应用程序的其余部分(通常直接从业务层)抽象数据层(数据库、Web服务),一个很好的例子是预订网站的这种模式:

它通过发布/订阅异步连接接收更新,并将其发送到其他组件。因此,这些组件相互独立。
所以Repository只是一个简单的中介类,用于使应用程序更加模块化,这样您就可以更容易地交换各个部分,并确保应用程序的其余部分不受DB连接或HTTP调用等的影响。所以从技术上讲,您可以从应用程序(或任何其他内容)继承并使用它保存静态变量等等

但是如前所述:

应用程序对象不能保证永远留在内存中,它将被杀死。与人们普遍认为的相反,这款应用不会从头开始重新启动。Android将创建一个新的应用程序对象,并在用户之前的位置启动该活动,让用户产生应用程序从未被杀死的错觉


所以,这完全取决于您,您可以根据自己的意愿使用存储库样式,它与房间或其他任何东西都没有任何关系。

当然,理论上您可以从应用程序继承,但让我们看看人们建议的最佳做法。但对于我来说很奇怪,如果你不需要API,也不需要DB,那么我想你需要从内存中存储/检索数据,这是你可以用存储库做的事情!希望能有所帮助