问题标签 [android-room]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
356 浏览

android - 我应该已经使用 Google 架构组件了吗?

我开始从头开始构建一个应用程序,并且正在决定我应该使用什么架构和工具来开始,因为这些决定通常也会长期影响我们。

在 Google IO '17 中,他们刚刚发布了架构组件,即 LiveData、Room(for SQLite)、ViewModel 和 LifecycleOwners & LifecycleObservers。与我以前的应用程序相比,我发现这些组件是一个很大的优势。但是由于这些组件仍处于alpha阶段,我现在在我的 android 项目中使用这些组件是否是一个好习惯,或者我应该坚持使用已经存在的 3rd 方 ORM 而不是 Room 并使用不同的机制来更新数据比 LiveData 并等待几个月让他们发布相同的稳定版本?他们通常需要多长时间才能将其转换为稳定版本?

非常感谢!

0 投票
1 回答
3027 浏览

android - 为什么使用 Android Room 时没有创建数据库文件?

我将 Room Persistence Library 用于我的 Android 应用程序,但在创建后我无法在我的设备上找到带有表格的 .sql 文件。

当我通过创建数据库时,SQLiteOpenHelper我可以在设备上的文件夹数据中看到我的所有表,但是当我通过 Room 创建数据库时,任何地方都没有文件。

我在哪里可以看到我所有表格的内容?

创建数据库代码:

0 投票
1 回答
2370 浏览

android - 带有 Android 架构组件的 MVVM

我正在探索新的 Android 架构组件并希望将其实现到 Android 应用程序中。当我使用 iOS 开发的范例时,我对 MVVM 非常熟悉。阅读了 Google 提供的 Android 架构组件指南:https ://developer.android.com/topic/libraries/architecture/guide.html

我只有几个问题...

在上面提到的指南中,Google 使用访问这些 Web 服务 API 的类——如果应用程序上只有一个屏幕需要来自 REST API 的数据,UserRepository他们继续制作这个类可能很好。Singleton

我关心的是这个;谷歌似乎提倡需要在每个 ViewModel 的基础上创建一个存储库类。这对我来说听起来很不对,在Singlton应用程序中有这么多课程。如果我们有 10 个屏幕,有 10 个 ViewModel - 每个都需要自己的Repository module- 我们的应用程序中就有 10 个单例。从 iOS 开发人员的角度来看,拥有这么多是错误的。

对此的解决方案是拥有一个具有公共方法的中介(存储库)类,公开 API 以从 REST API 获取数据。Web 服务部分将在其自己的类中。这样,我们就可以很好地分离关注点。

最佳实践是每个 ViewModel 拥有一个存储库类 - 还是每个应用程序拥有一个?我对此不是 100% 确定的。

最后,我也有同样的担忧Room——谷歌是说我们在每个 ViewModel 基础上创建一个数据库,还是每个应用程序只创建一个数据库?

0 投票
4 回答
17209 浏览

android - 如何使用 Android Room 和 RxJava 2 处理没有结果?

我有带有表格联系人的数据库,我想检查是否有某个电话号码的联系人。

我有上面的 RxJava 2 Composite 一次性声明来检查是否与电话号码有联系。

如果查询可以找到具有所需电话号码的联系人,这可以正常工作,但如果有结果,则不会发生任何事情。

这是我编写的两个测试用例,它们运行良好:

我该如何解决这个问题?

0 投票
2 回答
3651 浏览

android - Kotlin 的数据类、Android Room 和自定义 setter

我得到了一个看起来像这样的 Android Room 实体。到目前为止,不用担心。

现在我需要加密密码。使用 Java,只需使用 setter 即可完成此操作。

你将如何使用 Kotlin 来做到这一点。我找不到结合 Android Room、自定义设置器和数据类的解决方案。

0 投票
1 回答
2194 浏览

android - 如何用 Android Room 表示嵌套的@Relation?

这是我在 kotlin 中的 POJO:

如何用 Room 表示这种嵌套关系?是解决方案之一,但它不包含嵌套关系。我专门寻找解决与 Room 的嵌套关系。

0 投票
2 回答
9996 浏览

android - 如何在android房间中表示嵌套的一对多关系?

这是示例 POJO

这是我的UsersWithPets类,用于获取所有用户和宠物。

我的用户道

和用户数据库

UserWithPets ”嵌入用户对象并与“Pet”的关联列表相关但是如果我的“ Pet ”POJO 可以与“ Category ”有一对多关系,我如何获取“ Category ”列表。

此外,用户 DAO 通过映射和之间的 id 仅返回所有“用户”及其“列表<宠物>” 如果的“宠物”POJO 可以有许多“类别”(类别列表),我如何创建我的DAO 和抽象数据库类,这样查询特定的“用户”id 将返回“用户”对象及其“宠物列表”和包含“类别列表”的单个“宠物” ,查询所有将返回所有“用户列表”,其中每个用户包含一个“宠物列表”,每个宠物包含一个“user.idpet.userId类别列表"

0 投票
1 回答
684 浏览

android - Android Room - 发出单项更新

我正在使用 Android Room 加载数据。我的查询是这样的:

调用 getAll() 时,我第一次得到所有项目。然后,我使用网络请求更新所有项目。发生的情况是,如果我有 100 个项目,getAll() 将发出整个列表的 100 倍,这将更新 RecyclerView 100 次。

获取已更改的单个项目并调用 notifyItemChanged 的​​最佳实践?

谢谢。

0 投票
6 回答
25458 浏览

android - Room保存数据库Android在哪里?

我正在使用 Room 库将数据保存在数据库中。我想获取数据库。

使用此代码

它适用于简单的 sqlLite,但不适用于 ROOM Library ROOM

有什么办法可以获取数据库吗?

类在 Room 的帮助下创建数据库

0 投票
19 回答
112812 浏览

java - Android Room Database:如何处理实体中的 Arraylist?

我刚刚实现了 Room 用于离线数据保存。但是在实体类中,我收到以下错误:

课程如下:

所以基本上我想将 ArrayList 保存在数据库中,但我找不到任何相关的东西。你能指导我如何使用 Room 保存阵列吗?

注意:MyListItems Pojo 类包含 2 个字符串(截至目前)

提前致谢。