android-livedata相关内容

为什么新附加的观察者会触发两次 LiveData 观察者

我对LiveData的理解是,它会在数据的当前状态变化上触发观察者,而不是数据的一系列历史状态变化. 目前,我有一个MainFragment,它执行Room写操作,将非垃圾数据更改为垃圾数据. 我还有另一个TrashFragment,它观察垃圾数据. 考虑以下场景. 目前有 0 个已删除的数据. MainFragment 是当前的活动片段.TrashFragment 尚未 ..

为什么 LiveData 有一个单独的 MutableLiveData 子类?

看起来 MutableLiveData 与 LiveData 的区别仅在于创建了 setValue() 和 postValue() 方法公开,而在 LiveData 中,它们受到保护. 为什么要为此更改创建一个单独的类,而不是简单地在 LiveData 本身中将这些方法定义为公共方法? 一般来说,这种继承形式(增加某些方法的可见性是唯一的变化)是一种众所周知的做法吗?它在哪些场景中可能 ..

LiveData 防止在开始观察时接收最后一个值

是否可以防止 LiveData 在开始观察时接收到最后一个值?我正在考虑使用 LiveData 作为事件. 例如显示消息、导航事件或对话触发器等事件,类似于EventBus. ViewModel 和fragment 之间的通信问题,Google 给了我们LiveData 来更新view 的数据,但是这种类型的通信不适合我们需要更新的时候单个事件只查看一次,我们也不能在 ViewMode ..

带有 LiveData、存储库和视图模型的 Room 数据库如何协同工作?

我是 Android Studio 开发的新手,其中大部分内容都很简单.似乎这些概念是相当新的,而且 Google 的文档要么写得不好,要么只是让我非常困惑.即使在这里查看其他问题也不足以为我澄清这一点. 到目前为止,我在我的应用程序中所拥有的是用户注册或登录,其中用户的字符保存到数据库中或从数据库中检索.在当前状态下,登录和注册与数据库一起工作,插入和检索他们的角色会相应地更新 UI. ..

使用带有搜索视图的 LiveData 项目过滤 RecyclerView 的列表

我决定优化我的代码,因此切换到 liveData.我遵循了 youtube 上的教程(youtube 链接)但我不太明白如何在用户输入单词时过滤我的 recyclerView,因为我没有在我的适配器中存储任何列表.我在 MainActivity 上使用了一个简单的搜索视图过滤系统. 此外,我使用 DiffUtil 更新我的 recyclerView 并更新我的适配器,感谢: noteVie ..

使用带有搜索视图的 LiveData 项目过滤 RecyclerView 的列表

我决定优化我的代码,因此切换到 liveData.我遵循了 youtube 上的教程(youtube 链接)但我不太明白如何在用户输入单词时过滤我的 recyclerView,因为我没有在我的适配器中存储任何列表.我在 MainActivity 上使用了一个简单的搜索视图过滤系统. 此外,我使用 DiffUtil 更新我的 recyclerView 并更新我的适配器,感谢: noteVie ..

错误:程序类型已经存在:android.arch.lifecycle.LiveData

当我在 Android Studio 中按下运行按钮时,我的应用程序编译但显示此错误(已编辑): 错误:程序类型已经存在:android.arch.lifecycle.LiveData (完整日志) 我尝试删除 .gradle 文件夹,然后转到 Build >Clean Project 和 Build >重建项目.但是,它不起作用.我还尝试删除源代码,然后从 git 再次克隆并将文件夹导 ..

在 MVVM 架构中检查 SELECT 查询结果长度的干净方法是什么?

我正在创建一个应用程序,它将使用 SearchView 让用户进行查询以过滤数据.我正在使用 RoomDB,并尝试遵循 中推荐的 Model-View-ViewModel 架构Android 开发者指南. 我有一个实体和一个 DAO(现在我的数据库只有一张表).我在 DAO 中有一个方法,如下所示: @Query(“SELECT * FROM table WHERE column1 = : ..
发布时间:2021-11-02 23:05:47 Java开发

Room Database 不会在后台线程上运行我实现的事务

这个问题是我为我的其他问题,因此,如果您对第一个问题有解决方案可以避免此问题,那么我会全力以赴. 所以我在 Dao (getPageCombinedData) 中有这个方法,它用 @transaction 注释并且应该返回一个 MediatorLiveData,我想既然 MediatorLiveData 是 LiveData 的子类,那么Room 将提供必要的代码以使用其文档中引用的后台线程 ..

在Android中,在一个api调用中制作一个api调用列表

在我的一个 android 应用程序中,首先我想调用一个 api,它将返回一个项目列表,该项目将显示在 RecyclerView 中.我还需要为 RecyclerView 的每个项目调用另一个 api 以获取该项目的描述并根据它们的 id 显示每个项目的描述.我该如何解决这种情况. Subject.kt 数据类主题(val 主题:字符串,val 主题代码:字符串,val 主题图标:字符串, ..
发布时间:2021-11-02 23:05:40 移动开发

即使数据没有变化,LiveData 观察者的 onChanged 也会在活动轮换时被调用

我正在 Android 应用程序中使用 ViewModels 和 LiveData,我想使用它们来跟踪 Activity 的数据,即使屏幕旋转.这很有效,但有一个我无法解决的问题.在 Activity 的 onCreate 方法中,我为包含对象列表的 LiveData 注册了一个观察者,如果加载了数据,它应该只向活动添加一个 Fragment.然后,我只在 savedInstanceState 为 ..
发布时间:2021-11-02 23:05:33 移动开发

为什么必须删除作为observeForever 添加到LiveData 的观察者?

我已阅读 Android LiveData 文档: 您可以使用 observeForever(Observer) 方法注册一个没有关联 LifecycleOwner 对象的观察者.在这种情况下,观察者被视为始终处于活动状态,因此始终会收到有关修改的通知.您可以调用 removeObserver(Observer) 方法删除这些观察者. 我正在使用 ViewModel 使用 MVVM 架 ..

Android 中的 LiveDataScope 与 ViewModelScope

我在这里阅读了如何使用协程https://developer.android.com/主题/库/架构/协程.让我困惑的是 LiveDataScope 和 ViewModelScope 之间的区别.听起来 ViewModelScope 会自动处理生命周期,您可以在块中进行网络请求.当从服务器接收到数据时,将值发布到 livedata.但是当我继续阅读时,还有另一个关于 LiveDataScope 的 ..

如何在recyclerview中加载数据?

我正在创建一个 Android 应用程序并尝试在 Recyclerview 中设置数据,我正在使用带有 kotlin 的 MVVM 架构模式,我可以在 logcat 中看到数据,但是当应用程序加载时,我在我的 recyclerview 中没有看到任何数据.以下是我的代码. 主活动 class MainActivity : AppCompatActivity() {lateinit var ..