Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在域中正确写入数据?_Java_Android_Realm - Fatal编程技术网

Java 如何在域中正确写入数据?

Java 如何在域中正确写入数据?,java,android,realm,Java,Android,Realm,我有一种在领域中写入数据的方法: public void setChatsList(final ChatsModel chatsModel) { Realm realm = null; try { realm = Realm.getDefaultInstance(); realm.executeTransaction(new Realm.Transaction() { @Override publ

我有一种在领域中写入数据的方法:

public void setChatsList(final ChatsModel chatsModel) {
    Realm realm = null;

    try {
        realm = Realm.getDefaultInstance();

        realm.executeTransaction(new Realm.Transaction() {
            @Override
            public void execute(Realm realm) {
                realm.copyToRealmOrUpdate(chatsModel);
            }
        });

    } finally {
        if (realm != null) {
            realm.close();
        }
    }
}
我用这种方法从数据库中读取数据:

ChatsModel getAllChatsList() {
    Realm realm = Realm.getDefaultInstance();
    RealmResults<ChatsModel> chatsModelResult = realm.where(ChatsModel.class).findAll();

    ChatsModel chatsModel = chatsModelResult.get(0);

    return chatsModel;
}
为什么??我不能在不发送参数-chatsModelResult.size-1的情况下阅读吗

问题:我如何解决写作和阅读的问题

ChatsModel getAllChatsList() {
    Realm realm = Realm.getDefaultInstance(); // <-- realm instance never closed
    RealmResults<ChatsModel> chatsModelResult = realm.where(ChatsModel.class).findAll();

    ChatsModel chatsModel = chatsModelResult.get(0);

    return chatsModel;
}
通过在非looper后台线程上打开未关闭的Realm实例,您的版本将保留在旧版本的Realm上,并且无法自我更新


一种可能是适当的生命周期管理,或者调用realm.refresh。

您可以检查realm示例中的所有操作。GetAllChateList是从其他线程调用的吗?在读取之前,尝试在函数中添加realm.refresh。如果这就是问题所在,请看看这篇文章@beeender轻松可能,因为他打开了一个从未关闭过的领域实例
ChatsModel getAllChatsList() {
    Realm realm = Realm.getDefaultInstance(); // <-- realm instance never closed
    RealmResults<ChatsModel> chatsModelResult = realm.where(ChatsModel.class).findAll();

    ChatsModel chatsModel = chatsModelResult.get(0);

    return chatsModel;
}