2017-08-08 81 views
1

因此,我得到一个400个对象的列表,并将其放入集合copyToRealm()。然后,我做了一个findAllSorted(),我得到一个空阵列。所以我进行了调试,试图弄清楚什么是错的。我用Stethos检查了Realm数据库,并且看到了我在那里创建的对象,但是当我做findAllSorted()时,它说什么都没有。有什么关于copyToRealm()的地方,它是异步或东西。因为在那之后我打电话给copyToRealm()的那一行,我希望在那之后有结果,但是没有。领域:没有获取数据返回

+1

考虑添加代码,以便我们知道你到底在做什么。例如,如果涉及AsyncTask等(以及Realm版本) – EpicPandaForce

+0

我不假设将代码放出,因为这是我不想分享的代码。但是,是的,copyToRealm代码是在一个异步调用的回调,但findAllSorted也是如此,所以它不应该是一个竞争条件,除非我调用findAllSorted时没有完成copyToRealm,但如果代码是同步执行的,不成问题。 – Jeff

+0

所以为了澄清一点,我们有一个AsyncTask。在它的doInBackground中,我们对该巨大的列表执行copyToRealm()调用。在doInBackground的最后几行,我们通过runOnUiThread在UI线程上调用传入的回调函数。在回调中,那是我称之为findAllSorted的地方。令我困惑的是,虽然任务是异步的,但doInBackground中的所有内容都应该是同步的。所以它首先使用copyToRealm()进行批处理调用,然后一旦完成,它将执行一个回调,然后调用findAllSorted() – Jeff

回答

0

答案在上面的评论中找到。