java - Realm.copyFromRealm 导致从不正确的线程访问 Realm。是否可以?

标签 java android realm

来自错误线程的 Realm 访问。 Realm 对象只能在创建它们的线程上访问。

我使用 Realm 数据库做报警服务。

因此,为了获得“时间”数据,我必须访问在其他线程中创建的对象。

所以我像下面的源一样复制了 realmlist,但是在这部分出现了 illegalstateexception。

还有其他解决方案吗?

Realm realm = Realm.getDefaultInstance();

List<DayWorkType> dayWorkTypesCopied = realm.copyFromRealm(dayWorkTypes);
//FAILED HERE

realm.close();

最佳答案

    Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {
        Realm realm = Realm.getDefaultInstance();
        try {
            List<DayWorkType> dayWorkTypesCopied = realm.copyFromRealm(dayWorkTypes);
        } finally {
            realm.close();
        }
    }
});

thread.start();

关于java - Realm.copyFromRealm 导致从不正确的线程访问 Realm。是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54668137/

相关文章:

swift - 如何在我的 Package.swift 文件中添加对 RealmSwift 的依赖?

java - 使用 Java Servlet 上传 XML

Android 列表和复选框

android - 从另一个线程读取 RealmObject

ios - 重新定义模块 'Realm'

Android:第一次失败后如何停止仪器测试

java - 以 Spring MVC 形式绑定(bind)的对象

java - Swagger DefaultGenerator 类未找到?

java - 在 Java 中,我如何设计一个既通用、简单又可读的 API

android - 在 Edittext Android 中实时搜索