在填充 Realm 数据库时显示 ProgressDialog

Show ProgressDialog While populating Realm db

我正在使用应用程序运送 Realm 数据库并首先填充数据库运行
我遇到的问题是,如果我运行宁对话并填充为异步任务或在新线程中
然后当我将领域数据库实例化为

realm = realm.getDefaultInstance();

技术上应该是 运行 在数据库填充完成后我收到错误

Configurations cannot be different if used to open the same file.

用于填充数据库的代码是

RealmConfiguration config = new RealmConfiguration.Builder(context)
                        .name(Realm.DEFAULT_REALM_NAME)
                        .migration(new in.webic.longevity.longevity.Word())
                        .assetFile(context, "Default.realm")
                        .schemaVersion(0)
                        .build();
                realm = realm.getInstance(config);
                realm.close();

虽然这段代码 运行 出现空白屏幕,但我希望它被 ProgressDialog 或类似的东西替换

我正在使用此代码,但在数据库填充完成后,其他所有内容都应该是 运行,我无法实现

 if (isFirstRun)
    {
 new Thread() 
           {
 public void run() 
           {
     try
               {

 RealmConfiguration config = new RealmConfiguration.Builder(context)
                    .name(Realm.DEFAULT_REALM_NAME)
                    .migration(new in.webic.longevity.longevity.Word())
                    .assetFile(context, "Default.realm")
                    .schemaVersion(0)
                    .build();
            realm = realm.getInstance(config);
            realm.close();

      }
    catch (Exception e)
    {
        Log.e("tag",e.getMessage());
    }
// dismiss the progressdialog   
  progressDialog.dismiss();
 }
}.start();
SharedPreferences.Editor editor = wmbPreference.edit();
        editor.putBoolean("FIRSTRUN", false);
        editor.commit();

    }


我无法找到如何在同步显示对话框时填充数据库
请帮助任何片段或提示都会有帮助
问候

Configurations cannot be different if used to open the same file.

如果 equals() 与两种配置不匹配,您将收到此错误。这很可能是因为您的 Migration 对象的 hashCode 和 equals 没有重新定义。

public class Word extends Migration {
    //...migration

    @Override
    public int hashCode() {
       return Word.class.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
       return obj != null && obj instanceof Word;
    }
}

(或者只使用相同的配置实例)