领域导致ANR错误,没有错误消息。

时间:2017-05-24 08:36:24

标签: java android realm breakpoints android-anr-dialog

我听说Realm和主线程一样快。 但有时,当我插入或更新我的数据(甚至只是一个文本!)时,它会产生ANR错误而无所事事。 我不知道为什么会这样。因为也没有错误信息。

我已经检查了调试模式,所以我发现系统执行到

realm.executetransaction

然后,消失断点,无所事事...... 有没有像我一样有问题的人..? 请帮忙

1 个答案:

答案 0 :(得分:0)

在领域文档中,建议在从UI线程写入领域时使用异步事务,因为在事务中写入有时会阻塞。这可能会导致主线程中出现ANR。请在此处阅读有关异步交易的更多信息:Realm docs

以下是来自docs的异步交易的示例示例:

RealmAsyncTask transaction = realm.executeTransactionAsync(new 
        Realm.Transaction() {
            @Override
            public void execute(Realm bgRealm) {
                User user = bgRealm.createObject(User.class);
                user.setName("John");
                user.setEmail("john@corporation.com");
            }
        }, null);