函数使用liveData返回void

时间:2019-07-06 11:59:51

标签: android kotlin android-room

我正在使用Room处理我的本地数据库,并使用LiveData处理DAO。
因此,我将LiveData用作事务处理的线程处理程序。

问题是如何使用LiveData进行插入和更新?还是通常无效函数如何在会议室中返回LiveData

@Query("select * from table")
fun getAll(): LiveData<List<T>>
@Insert
fun insert(T data): LiveData<?> // What should be the generic, since it's void?

在RxJava中,我们有这样的东西:

@Insert
fun insert(T data);

1 个答案:

答案 0 :(得分:0)

  

问题是如何使用LiveData插入和更新?还是一般来说,无效函数如何在Room中返回LiveData?

您不能使用LiveData对象本身在数据库(db)中插入或更新数据。 LiveData是可以观察到的从db加载的对象的包装。

为了执行插入/更新操作,您需要将带有@Entity注释的对象传递给DAO方法参数。您可以通过调用LiveData#getValue()来执行此操作,也可以在Activity中观察LiveData,或者通过观察者对Fragment进行更新并传递局部变量并传递该变量。