实时数据和会议室查询

时间:2019-04-18 18:35:24

标签: java android mvvm

我正在使用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
        }
    });

0 个答案:

没有答案