我如何观察外部发生的变化,例如在服务中还是通过广播接收器?
我是这样听的:
myDao.registerObserver(this);
当数据库在服务或广播接收器中发生变化时,方法 void onChange()
不会被调用。
我正在使用 OrmLite v5.0
最佳答案
How can I observe changes if they are made externally, e.g. in a service or via a broadcast receiver?
ORMLite 观察器仅在监视对同一 myDao
实例的调用时起作用。 ORMLite 无法通过其他机制以某种方式拦截数据库调用以报告它们。这真的是您要问的吗?
您可以定期查询数据库以检测新行或对现有行的更改,但这看起来很昂贵。您当然可以将您的实体配置为使用当前时间更新 lastModified
字段以使其更容易。
另一种解决方案可能是某种数据库代理。其他解决方案是针对其他数据库更新,在更新行时发送某种带外通知。
希望这对您有所帮助。
关于Android, OrmLite - 观察dao的外部变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39317034/