问题标签 [android-architecture-components]

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 投票
4 回答
26380 浏览

android - Android Room:按不工作排序

我正在使用新的 Android ORM Room。我遇到了以下问题,使用带有参数的 ORDER BY 的查询不起作用。

如果我想使用从 ORDER BY 的参数填充的字段,它不起作用。它只是不排序任何东西。

但是,当我将 ORDER BY 列直接放在查询中以对结果进行排序时,它会按预期工作。

这是 Android Room 上的错误,还是我做错了什么?

0 投票
12 回答
149880 浏览

android - 房间持久性库。删除所有

如何使用 Room Persistence Library 删除特定表上的所有条目?我需要删除表,但我找不到任何信息如何执行此操作。

仅当数据库正在迁移或加载所有条目并删除它们时:)

0 投票
2 回答
10604 浏览

android - ViewModel 能否在 Activity 保存和恢复中存活?

ViewModel如果以下列方式使用,新类的实例可以在配置更改后继续存在:

但是,除了配置更改之外,还有一个保存-恢复的场景,即整个应用程序的进程都被杀死了。

ViewModel在保存-恢复场景中会保留里面的字段值吗?


编辑:基于这个问题的答案,我写了这篇文章:Android ViewModel Architecture Component is Dangerous

0 投票
5 回答
5457 浏览

android - Android架构组件的源代码在哪里?

找不到新的 Android 架构组件的源代码。出版了吗?如果是,在哪里?

如果源在 AOSP 中,请指定我应该使用哪个特定的 repo 项目repo sync [PROJ_NAME]来获取它。

0 投票
6 回答
21594 浏览

android - 单元测试室和 LiveData

我目前正在使用新的Android Architecture Components开发应用程序。具体来说,我正在实现一个房间数据库,LiveData它在其中一个查询中返回一个对象。插入和查询按预期工作,但是我在使用单元测试测试查询方法时遇到问题。

这是我要测试的 DAO:

NotificationDao.kt

如您所知,查询函数返回一个LiveData对象,如果我将其更改为List,Cursor或基本上任何内容,那么我会得到预期的结果,即插入数据库中的数据。

问题是以下测试总是会失败,因为对象valueLiveData总是null

NotificationDaoTest.kt

所以问题是:有谁知道执行涉及 LiveData 对象的单元测试的更好方法?

0 投票
1 回答
3417 浏览

android - Android架构组件LiveData - 如何将broadcastReceivers绑定到生命周期

使用 Android LiveData我希望能够在和回调中取消注册和注册许多BroadcastReceivers 。所以我想做这样的事情:onInactive()onActive()

我在想这可能是一种设计模式来清理代码而不是在onDestroy. 您对以这种方式使用 LiveData 有何看法?这里有一个使用它的例子

0 投票
8 回答
107895 浏览

android - 使用新的架构组件 ViewModel 在片段之间共享数据

在 Last Google IO 上,Google 发布了一些新架构组件的预览,其中之一是 ViewModel。

文档中,谷歌显示了该组件的一种可能用途:

一个活动中的两个或多个片段需要相互通信是很常见的。这绝不是微不足道的,因为两个片段都需要定义一些接口描述,并且所有者活动必须将两者绑定在一起。此外,两个片段都必须处理另一个片段尚未创建或不可见的情况。

这个常见的痛点可以通过使用 ViewModel 对象来解决。想象一个主从片段的常见情况,我们有一个片段,其中用户从列表中选择一个项目,另一个片段显示所选项目的内容。

这些片段可以使用它们的活动范围共享一个 ViewModel 来处理这种通信。

并展示了一个实现示例:

我对不需要那些用于片段的接口通过活动进行通信的可能性感到非常兴奋。

但谷歌的例子并没有准确地显示我将如何从主控中调用细节片段。

我仍然必须使用将由活动实现的接口,该接口将调用 fragmentManager.replace(...),或者还有另一种使用新架构的方法来做到这一点?

0 投票
7 回答
33865 浏览

android - 无法解决:android.arch.lifecycle:extensions:1.0.0-alpha1 android studio 3.0

我正在使用 android 插件'com.android.tools.build:gradle:3.0.0-alpha1'和 gradle 版本在 android studio 3.0 中构建一个项目gradle-4.0-milestone-1-all.zip

也使用了 maven repo:

此外,在我的项目中使用 android Room 持久性和生命周期。已经在我的应用程序 gradle 文件中声明了以下依赖项:

同步并构建项目时,它显示以下错误:

Failed to resolve: android.arch.lifecycle:extensions:1.0.0-alpha1

我是否缺少针对此问题的某些内容或任何其他解决方案。

0 投票
1 回答
30220 浏览

android - Android Persistence room: "Cannot figure out how to read this field from a cursor"

I'm trying to create a relation between two database tables using the new Android Persistence Room Library. I looked at the documentation and tried to implement the example found at https://developer.android.com/reference/android/arch/persistence/room/Relation.html:

I get the following error

in relation to:

I would like to point out that I found some things in their docs really confusing. For example the lack of @PrimaryKey and also the fact that the User class is missing the @Entity annotation, although it's supposed to be an entity (as fas as I see it). Did anybody run into the same problem? Thanks a lot in advance

0 投票
2 回答
644 浏览

android - android ViewModelStore 是依赖注入器吗

你好?我应该如何看待androids架构组件ViewModelStore它是否使使用依赖注入库注入ViewModels的需要无效?</p>