如果我喜欢以下内容:
@Relation(parentColumn = "id", entityColumn = "fk_id", entity = User.class)
private List<User> users;
这个列表
是一个通过LiveData
更新的模型。
但我希望能够在检测到对用户表的更改时更新它。现在,它只获取数据库中存在的内容,但是只要用户表发生更新,这个列表就不会更新。有什么建议吗?
最佳答案
你没有非常具体地说明你在做什么或想要什么(你使用哪个数据库,谁在更新数据库......)。
But I want to be able to update this when I detect changes to the User table. Right now, this only picks up what exists in the DB but whenever an update happens to the user table, this list does not get updated. Any suggestions?
选项 1
如果您在与 List users
相同的 应用程序中执行更新/插入/删除
,那么您可以轻松地更新您的 List
在你的代码中。
选项 2
如果另一个应用程序/服务正在更新数据库,我建议您使用 trigger更新您的 List
。
参见 http://www.coderconsole.com/2015/02/android-sqlite-trigger-demo.html举个例子。
检测 Java 中的更改很棘手,请参阅 Calling a Java method from a sqlite trigger (android) .
这是一个示例,您使用 ContentObserver
来监控您的 Sqlite
数据库(平面文件本身)https://gist.github.com/JBirdVegas/3874450
选项 3
如果另一个应用程序/服务正在更新数据库,您可以使用 BroadcastReceiver获取更改。
关于java - 观察数据库中的@Relation 变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47225220/