使用ViewModel与SQLite数据库而非Room数据库

3

我有一个重要的问题。我刚刚了解到,安卓的ViewModel是一种更好的替代方案,可以在安卓中存活方向改变,并减少样板代码的方法。我已经有一个使用SQLiteLoaderManager完成的项目,并希望从使用Loaders迁移到ViewModel。然而,我在网上找到的所有教程和文档都只使用Room库来使用ViewModel

我无法承担学习Room的成本,而且我的项目很难重构以支持Room。

因此,我的问题如下:

  1. 我可以使用原始的SQLiteViewModel吗?
  2. ViewModel是否只设计用于与Room数据库一起使用?

如果您已经使用GSON或其他库将Json对象映射到Java对象,则学习ROOM也会很容易,我建议您学习Room。如果您没有以上部分的经验,那么这并不难。您可以在此处找到Google Codelab。ViewModel Codelab -> https://codelabs.developers.google.com/codelabs/android-lifecycles/#0 Room Codelab -> https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#0 - Jay Dangar
1个回答

5

我可以在ViewModel中使用原始的SQLite吗?

可以,因为ViewModel与任何特定的数据源无关。

ViewModel只能与Room数据库一起使用吗?

不是。它们是完全独立的。


非常正确。谢谢 :) - Jay Dangar
请问我如何在原始SQLite中使用视图模型?我需要代码示例。 - Urchboy
1
@Urchboy:“请问我如何使用ViewModel和原始SQLite?”-- 在许多应用程序中,ViewModel 不使用 Room 或原始 SQLite。相反,ViewModel 与存储库对象通信。存储库负责使用任何有意义的方式(原始 SQLite、Room、Retrofit 等)与数据存储(本地数据库、Web 服务等)进行通信。存储库的 API 隐藏了所有这些细节。这在文档中有所讨论。 - CommonsWare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接