android - 如何从带有房间的外部数据库中读取不断更新的值?
问题描述
我使用带有 Live Data 的空间来访问外部数据库。存储在外部数据库中的值由另一个应用程序每 5 秒更新一次。似乎我无法不断地从房间接收更新的值。我应该重建数据库以每 5 秒更新一次值吗?
以下是一些参考代码:
@Dao public interface GasDynamicDao {
@Query("Select * from gas_dyamic")
LiveData<List<GasDynamicEntity>> getAllInformation();
@Query("Select * from gas_dyamic")
List<GasDynamicEntity> getAllInformationSync();
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(List<GasDynamicEntity> products);
@Query("Select * from gas_dyamic where Device_ID = :deviceID")
LiveData<GasDynamicEntity> loadGas(String deviceID);
@Query("Select * from gas_dyamic where Device_ID = :deviceID")
GasDynamicEntity loadGasSync(String deviceID);
}
public static GasDatabase buildDatabase(final Context appContext, final AppExecutors executors) {
return Room.databaseBuilder(appContext, GasDatabase.class,
DATABASE_FULL_PATH).allowMainThreadQueries().build();
}
解决方案
我通过轮询数据库来解决问题。但是数据库不需要从房间重新创建或重新加载。LiveData 将通过 Dao 方法重新查询数据库再次发生变化。
推荐阅读
- html - Flexbox 项目不适应图像高度/稍大
- sql - 使用 SQL 将文本重新排列为不同的顺序
- python - ModuleNotFoundError:训练对象图像时没有名为“object_detection”的模块
- github - 让 Jekyll 使用现有的 Github Pages 站点
- python - 将 Jupyter 与适用于 Linux 的 Windows 子系统一起使用
- excel - 合并两个私有 workbook_open
- ios - CollectionView insertItem 导致整个列表被刷新
- excel - 如何在 Excel VBA 中定义某个类别中所有值的数组/集合?
- wordpress - 为 wordpress 配置社交登录
- batch-file - 批处理 - 通过延迟扩展获取本地值