在填充 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;
}
}
(或者只使用相同的配置实例)
我正在使用应用程序运送 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;
}
}
(或者只使用相同的配置实例)