我正在使用Room数据库和实时数据。我对ui相关数据没有问题,因为我正在通过视图模型从活动中观察数据库查询。但是我需要db的viewmodel中的一些数据(不在活动中),我不能在那里使用它,因为livedata在没有观察的情况下无法正常工作。如果我尝试在没有Livedata的情况下从db获取此数据,那么我将无法在ui线程错误中从db获取数据。我该如何解决?
Ps:我正在通过存储库访问数据库。
我的DAO:
@Query("SELECT * from loggedUser limit 1")
LiveData<LoggedUser> getLoggedUser();
存储库:
public LiveData<LoggedUser> executeGetLoggedUser() {
return userDao.getLoggedUser();
}
Viewmodel:
private MediatorLiveData<LoggedUser> loggedUser = new MediatorLiveData<>();
final LiveData<LoggedUser> tt = ribonyRepository.executeGetLoggedUser();
loggedUser.addSource(tt, new Observer<LoggedUser>() {
@Override
public void onChanged(@Nullable LoggedUser loggedUser) {
//No data is coming to here
}
});