问题标签 [android-livedata]
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.
android - Android 架构组件 liveData 和 room - 最低要求是什么?
我意识到它处于 alpha 阶段,但是我想知道像 liveData 和 room 这样的 android 架构组件是否有任何最低要求?例如 min android api/sdk 等。我看过这里 ,但如果有任何要求,它没有显示给我。我可以假设我可以使用这个权利至少回到 android ICS 吗?
android - Android架构组件室库——如何处理来自DAO的livedata
我不清楚如何设置从房间中的 dao 返回的实时数据。让我们看一个房间中的示例 DAO:
特别是,我想看看getEvents Query 调用。它将返回 liveData 对象中的事件列表。这是如何从呼叫者端调用的?任何人都有一个可观察/可流动以及普通旧java的例子吗?
android - LiveData.getValue() 使用 Room 返回 null
Java POJO 对象
我的查询方法
访问数据库
在下一行,我正在检查sections.getValue()
哪个总是给我 null,尽管我在数据库中有数据,后来我得到了onChanged()
方法中的值。
但是当我从查询中省略 LiveData 时,我得到了预期的数据。查询方法:
访问数据库:
android - 使用 Android LiveData 更新 RecyclerView
有很多示例如何在 LiveData 更改时将新列表推送到适配器。
我正在尝试更新庞大列表中的一行(例如帖子的评论数)。重置整个列表以仅更改一个字段是愚蠢的。
我可以在BindViewHolder 上添加观察者,但我不明白什么时候应该删除观察者
android - 使用 Android 架构组件 LiveData & ViewModel 时是否需要使用 onSaveInstanceState 和 onRestoreInstanceState?
Android 架构组件提供了LiveData
和ViewModel
类,这些类对生命周期更友好,专为更精简的 Activity/Fragment 而设计。这些类处理跨配置更改的数据存储,但与 Activity 框架 API 相比,我对它们的使用感到困惑。对于保持活动状态是否 仍然必要onSaveInstanceState(Bundle)
或有用?onRestoreInstanceState(Bundle)
android - 如何处理 onResume - onPause 状态下的 LiveData 项目?
如果 LifecycleOwner 的状态为 STARTED 或 RESUMED,则认为 LifecycleOwner 处于活动状态。
但是,如果状态仅为 RESUMED,我希望它处于活动状态怎么办?例如,当用户返回屏幕时显示一些精美的动画。有没有办法只使用 LiveData 来做到这一点?
现在,我正在检查事件发生时的状态,如果状态未恢复,我将缓存它以在 onResume 方法中继续。这感觉不对。
android - 如何清除 LiveData 存储值?
根据LiveData 文档:
LiveData 类具有以下优点:
...
始终保持最新数据:如果生命周期再次启动(例如活动从后台堆栈返回到启动状态),它会接收最新的位置数据(如果还没有)。
但有时我不需要这个功能。
例如,我在 ViewModel 中有以下 LiveData,在 Activity 中有 Observer:
现在每次旋转后都会出现旧对话框。
有没有办法在处理后清除存储的值,或者它是否完全错误地使用了 LiveData?
android - 从前台服务观察 LiveData
我有一个存储库,它保存 LiveData 对象,并通过 ViewModel 由活动和前台服务使用。当我开始从活动中观察时,一切都按预期工作。但是,从服务中观察不会触发观察。这是我使用的代码
任何想法为什么它不起作用并且我没有收到数据?
android - Room - LiveData 观察者在数据库更新时不会触发
我试图在下面的代码中找出,为什么一旦我用新数据填充数据库,Room 的 LiveData observable 不会给我新的转变。
这是放在我活动的 onCreate 方法上的:
这是 populateAdapter 方法:
我还有以下填充数据库的代码(我使用 RxJava 在 IO 线程上完成工作,因为 Room 需要在主线程之外调用它的代码):
在我开始观察我的 shiftsViewModel 后调用persistShifts 时出现的问题。我希望我的观察者(LiveData)会被所有新添加的班次触发。事实证明,观察者被触发,但返回的是一个空的班次列表。使其“工作”的唯一方法是我离开活动(因此破坏当前的 ViewModel)并再次进入。这一次,viewModel 的 LiveData 为我提供了之前坚持的所有转变,正如预期的那样。
这是其余的代码:
道:
视图模型:
为什么我没有立即获得在 observe() 回调中坚持的班次列表?