如何从有空间的外部数据库中读取不断更新的值?
How can I read constantly updated value from external database with room?
我使用带有实时数据的房间来访问外部数据库。
存储在外部数据库中的值每 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方式重新查询数据库,再次发生变化。
我使用带有实时数据的房间来访问外部数据库。 存储在外部数据库中的值每 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方式重新查询数据库,再次发生变化。