【发布时间】:2016-11-21 10:54:54
【问题描述】:
我在等待工作线程上的新数据时遇到问题。数据对象被复制到主线程上的领域,但几乎在之后我需要从工作线程访问这个对象,然后报告说领域中现在不存在这样的对象(它新打开的领域实例)。我记得有一个方法 load() 会阻止执行到下一次更新,但它在较新的版本中被删除了。而且我不能为此使用更改通知,因为这不是 Looper 线程..
我现在能想到的唯一方法是让线程休眠一段神奇的时间,并向上帝祈祷它已经更新,但恕我直言,这种方法非常不确定。
任何人都可以在这里提供建议,我如何确保我阅读当时最新的数据?
【问题讨论】:
-
在工作线程上为每个工作单元打开和关闭你的领域应该可以解决问题。如果您看到旧数据,那是因为您的 Realm 上次没有正确关闭。
-
是的,我认为情况正是如此。我忘了关闭实例,这很奇怪,因为这是一个请求拦截器,所以我没有用完内存,所以创建了实例非常迅速...
标签: java android multithreading realm