UI 将 36 MB JSON 文件写入领域数据库时被阻止,因此无法显示进度

UI blocked when writing 36 MB JSON file to realm Dataabase, so unable to show progress

我正在尝试将本地 JSON 文件(即 36 MB 大)解析到领域数据库中。我也在尝试在执行此操作时显示进度条。但它没有显示。然后我使用计时器在一秒钟后启动领域任务,这次进度对话框启动但在一秒钟后挂起。我什至尝试了异步领域任务,但问题仍然存在。

RealmAsyncTask transaction = realm.executeTransaction(new Realm.Transaction() {
        @Override
        public void execute(Realm bgRealm) {
        }
    }, null);

// configuration change ... 

public void onStop () {
if (transaction != null && !transaction.isCancelled()) {
    transaction.cancel();
   }
}

伙计们,找到关于这个的任何解决方案。

改用异步事务

showProgressbar();
realm.executeTransactionAsync(new Realm.Transaction() {
    @Override
    public void execute(Realm realm) {
        // Import data
    }
}, new Realm.Transaction.OnSuccess() {
    @Override
    public void onSuccess() {
      hideProgressbar();
    }
}, new Realm.Transaction.OnError() {
    @Override
    public void onError(Throwable error) {
      hideProgressbar();
    }
});