Android,OrmLite - 观察dao的外部更改

时间:2016-09-04 12:42:12

标签: android ormlite observable

如果在外部进行更改,我该如何观察更改,例如:在服务中还是通过广播接收器?

我这样听:

myDao.registerObserver(this);

当数据库在服务或广播接收器中发生变化时,方法void onChange()不会被调用。

我使用的是OrmLite v5.0

1 个答案:

答案 0 :(得分:1)

  

如果在外部进行更改,我该如何观察更改,例如:在服务中还是通过广播接收器?

ORMLite观察器仅在监视对同一myDao实例的调用时才起作用。 ORMLite无法以某种方式通过其他机制拦截数据库调用来报告它们。那真的是你问的吗?

您可以定期查询数据库以检测新行或更改现有行,但这看起来很昂贵。您当然可以将实体配置为使用当前时间更新lastModified字段,以便更轻松。

另一种解决方案可能是某种数据库代理。其他解决方案将是其他数据库更新在更新行时发送某种带外通知。

希望这有帮助。