java - 观察数据库中的@Relation 变化

标签 java android annotations relational-database

如果我喜欢以下内容:

@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/

相关文章:

php - 从 Android 应用程序上传多个图像到服务器

iphone - 如何检测 map View 上显示的注释标注?

c# - Java 注解 C# 等价物

java - Field#getAnnotation() 不适用于自己的注释

java - 优化 Xms/Xmx/XX :MaxPermSize in JVM

javax.validation 获取字段字段所有者对象

java - 使用 ForkJoinPool Java 找不到 JAXB 类

安卓 : swipe between activities using a single resource

android - 为什么 LiveData 值需要包装器?

java - 编译器正在创建带有 $ 的额外类文件