【发布时间】:2020-02-06 17:02:05
【问题描述】:
我在房间数据库中使用实时数据,我的活动观察房间数据库提供的实时数据。
@Query("SELECT * FROM BUS WHERE BUS_CATEGORY = :busCategory")
LiveData<List<Bus>> getLiveBuses( String busCategory);
ViewModels 通过 Dao(数据访问对象)获取 LiveData,Activity 会观察这些实时数据。
现在它工作正常。但是当 busCategory 更改时,我无法修改此实时数据以获取新选择的 busCategory 的总线。
那么在查询参数可变的情况下,我如何观察相同的 liveData?
【问题讨论】:
-
在更改
busCategory时,您需要再次调用viewmodel方法,以使用新的busCategory获取新数据。 -
@MuhammadAwais 然后它观察两个总线类别,在 onChanged 方法中它还获得先前总线类别的值
-
第二种方法不需要调用
observe方法。因为它已经在你的视野中观察到了。更改数据后,您的onChanged()方法将使用新数据调用。 -
我也有同样的问题。需要更改查询参数。经过几天的测试和搜索,我没有给出明确的答案。希望有人能照亮我们。
标签: android observable android-room android-livedata