java - 实时数据和房间查询
问题描述
我正在使用 Room 数据库和实时数据。我对 ui 相关数据没有任何问题,因为我正在通过视图模型从活动中观察到数据库查询。但是我需要来自 db 的 viewmodel 中的一些数据(不在活动中),我不能在那里使用它,因为 livedata 在没有观察的情况下无法工作。如果我尝试在没有来自 db 的 Livedata 的情况下获取此数据,我会在 ui 线程错误中让您无法从 db 获取数据。我该如何解决?
Ps:我正在通过存储库访问数据库。
我的道:
@Query("SELECT * from loggedUser limit 1")
LiveData<LoggedUser> getLoggedUser();
存储库:
public LiveData<LoggedUser> executeGetLoggedUser() {
return userDao.getLoggedUser();
}
视图模型:
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
}
});
解决方案
推荐阅读
- javascript - 无法从子组件获取映射索引的值以在 React 中作为函数参数传递
- java - 使用自定义行尾从java中的.txt文档中逐行获取
- mysql - 如何修复我的 express POST 处理程序中的 SQL 语法错误?
- python - 如何使用 Python 在 Powershell 中编写代码
- r - DAVID 基因本体 - 将文件导入 R 以制作绘图
- radio - GNU 无线电中使用 FSK 解调的时钟恢复
- excel - VBA将图表的值设置为多个选定的单元格
- react-native - 如何知道在您的 React Native 应用程序中哪个应用程序正在后台使用?
- javascript - 如何将字符串拆分为单独的键和值?
- windows - 为什么某些应用程序会更改其 Windows 剪贴板格式代码的值?