Android RealmResults大小未返回预期值

Android RealmResults大小未返回预期值,android,realm,Android,Realm,所以我有一些代码,在应用程序中完成一个操作后,一些数据会保存到realm。为此,我使用以下代码: Realm realm = Realm.getDefaultInstance(); realm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm realm) { Log.d(TAG, "Co

所以我有一些代码,在应用程序中完成一个操作后,一些数据会保存到realm。为此,我使用以下代码:

Realm realm = Realm.getDefaultInstance();
        realm.executeTransaction(new Realm.Transaction() {
            @Override
            public void execute(Realm realm) {

                Log.d(TAG, "Copying to realm...");
                realm.copyToRealm(mPlayLog);
            }
        });

        RealmResults<PlayLog> res = realm.where(PlayLog.class).findAll();
        Log.d(TAG, "Size after saving: " + res.size());
Realm-Realm=Realm.getDefaultInstance();
realm.executeTransaction(新realm.Transaction(){
@凌驾
公共void执行(领域){
Log.d(标记“复制到领域…”);
realm.copyToRealm(mPlayLog);
}
});
RealmResults res=realm.where(PlayLog.class).findAll();
Log.d(标记“保存后的大小:”+res.Size());
保存后,将打印适当的“保存后大小:”字样

然后,我有一个每分钟运行一次的计划任务,将这些数据推送到api

在任务代码中,我使用以下命令查询先前保存的数据:

myRealm = Realm.getDefaultInstance();
            RealmResults<PlayLog> playLogResults = myRealm.where(PlayLog.class).findAll();

            int size = playLogResults.size();

            Log.d("done", "results: " + size);
myRealm=Realm.getDefaultInstance();
RealmResults playLogResults=myRealm.where(PlayLog.class).findAll();
int size=playLogResults.size();
Log.d(“完成”,“结果:+大小”);

问题是,运行此代码后,结果为0。为什么找不到数据?

这两个代码段是否在两个不同的线程中运行?这些线程是循环线程吗?它们都在主线程中:其中一个在
服务中,另一个在
广播接收器中,尝试在
myRealm.waitForChange()之前执行
myRealm.where()…
这将阻止主线程..无法等待循环器线程内的更改。如果您在循环器线程中,则域将更新。从您的缩进中,我感觉您遗漏了一些代码。可能是这些代码导致了麻烦。请更新,以便我们能够更好地了解正在发生的事情。