Android中可以将SingleLiveEvent与Room一起使用吗?

时间:2018-07-06 05:43:05

标签: android android-room android-livedata

我正在修补SingleLiveEvent。是否可以在Room数据库中使用它?我尝试使用它,但出现构建错误,提示Not sure how to convert a Cursor to this method's return type。这里有什么解决方法吗?我有一个我想使用它的小巧包!

1 个答案:

答案 0 :(得分:0)

SingleLiveEventMutableLiveData,即LiveData。您可以使用工作线程中调用的选择查询从Room返回List<LiveData<YourData>>。无需在Room中使用游标。获取List<LiveData<YourData>>并在Observ方法上将List<YourData>发送到所需的类或RecyclerView。您需要光标的情况是什么?

  

警告:强烈建议不要使用Cursor API,因为   它不能保证行是否存在或行的值是多少   包含。仅当您已经有以下代码时才使用此功能   需要一个游标,并且您不容易重构。

但是,您可以通过

获得它
@Dao
public interface MyDao {
    @Query("SELECT * FROM user WHERE age > :minAge LIMIT 5")
    public Cursor loadRawUsersOlderThan(int minAge);
}

Source