问题标签 [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 投票
2 回答
23218 浏览

android - Android 架构组件:使用枚举

是否可以通过新的 Android 架构组件和房间持久性库将 Enum 类型用作实体类中的嵌入字段?

我的实体(带有嵌入式枚举):

我的类型转换器:

当我编译这个我得到一个错误说Error:(52, 12) error: Entities and Pojos must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type).

更新 1 我的 SyncEntity 类:

0 投票
2 回答
1754 浏览

android - Room Persistence @Relation 在 Java 中工作,但在 Kotlin 中不工作

基于我之前的问题(Android Persistence room: "Cannot figure out how to read this field from a cursor"),感谢反馈,我开始工作,我在 Kolin 中实现了相同的示例(参见下面的代码)。我必须进行一些小的更改,例如现在传递给查询的参数,这些参数必须作为“p0”、“p1”等传递。现在在 Kotlin 中,我收到以下与 UserWithPets 类相关的错误:

错误:无法弄清楚如何从游标中读取此字段。e: 私有 java.util.List 宠物;

看来,如果我用UserWithPetsJava 编写该类,它可以正常工作,但用 Kotlin 编写时会失败。有什么想法有什么问题吗?这是注释处理问题吗?

0 投票
1 回答
425 浏览

android - 如何使用 Proguard 调用 Android 生命周期感知组件?

我有一个从 Activity 调用的生命周期感知组件。它在debug模式下工作正常。但是当缩小(Proguard)时,似乎没有调用生命周期组件。添加规则是什么proguard-rules.pro

经过一番折腾,我得到了答案。请检查以下。原始推文

0 投票
2 回答
927 浏览

android - 使用 Android 架构组件 LiveData & ViewModel 时是否需要使用 onSaveInstanceState 和 onRestoreInstanceState?

Android 架构组件提供了LiveDataViewModel类,这些类对生命周期更友好,专为更精简的 Activity/Fragment 而设计。这些类处理跨配置更改的数据存储,但与 Activity 框架 API 相比,我对它们的使用感到困惑。对于保持活动状态是否 仍然必要onSaveInstanceState(Bundle)或有用?onRestoreInstanceState(Bundle)

0 投票
1 回答
2376 浏览

android - 在 AndroidViewModel 中获取 FragmentManager

AndroidViewModel用于访问Application上下文。我试图访问Activity'sFragmentManager而不明确传递它:

出现错误,无法转换ContextActivity.


问题:有没有什么方法可以FragmentManagerAndroidViewModel不明确通过的情况下进入?

0 投票
2 回答
1031 浏览

android - 如何处理 onResume - onPause 状态下的 LiveData 项目?

文档说:

如果 LifecycleOwner 的状态为 STARTED 或 RESUMED,则认为 LifecycleOwner 处于活动状态。

但是,如果状态仅为 RESUMED,我希望它处于活动状态怎么办?例如,当用户返回屏幕时显示一些精美的动画。有没有办法只使用 LiveData 来做到这一点?

现在,我正在检查事件发生时的状态,如果状态未恢复,我将缓存它以在 onResume 方法中继续。这感觉不对。

0 投票
7 回答
55959 浏览

android - 如何清除 LiveData 存储值?

根据LiveData 文档

LiveData 类具有以下优点:

...

始终保持最新数据:如果生命周期再次启动(例如活动从后台堆栈返回到启动状态),它会接收最新的位置数据(如果还没有)。

但有时我不需要这个功能。

例如,我在 ViewModel 中有以下 LiveData,在 Activity 中有 Observer:

现在每次旋转后都会出现旧对话框。

有没有办法在处理后清除存储的值,或者它是否完全错误地使用了 LiveData?

0 投票
3 回答
6521 浏览

android - 再次为片段创建 ViewModel

我在 MainFragment 中创建视图模型:

当用户选择项目然后导航到详细信息片段时,此事务将添加到后台堆栈。

当用户在详细信息片段中按回时,一切正常,但如果用户在详细信息片段中旋转设备并按回:

  • 为 MainFragment 创建 ViewModel 的新实例
  • 旧实例仍然存在(未调用方法 onCleared)

这是 ViewModelProviders 中的错误吗?如何解决这个问题?在我看来,应该恢复 ViewModel。

0 投票
1 回答
3459 浏览

java - Android架构组件:房间:没有这样的表

我正在尝试使用新的架构组件,但是当我尝试运行时,我得到:

“错误:(375、24)错误:查询有问题:[SQLITE_ERROR] SQL错误或缺少数据库(没有这样的表:posts)”

以下是我的课。

**实体 : **

道:

数据库:

0 投票
1 回答
1020 浏览

android - 在 LifecycleObserver 中持有 Lifecycle 对象的引用

在 LifecycleObserver 类中,保存 Lifecycle 对象的引用有多好?会出现什么并发症?