我听说Realm和主线程一样快。 但有时,当我插入或更新我的数据(甚至只是一个文本!)时,它会产生ANR错误而无所事事。 我不知道为什么会这样。因为也没有错误信息。
我已经检查了调试模式,所以我发现系统执行到
realm.executetransaction
然后,消失断点,无所事事...... 有没有像我一样有问题的人..? 请帮忙
答案 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);