2016-09-18 54 views
0

我航运领域DB与应用程序和firstrun
问题我坚持的,如果我运行对话框,并填充为ASYN任务或在一个新的线程
然后填充数据库,当我实例境界分贝为
显示ProgressDialog在填充境界分贝

realm = realm.getDefaultInstance(); 

技术上数据库的人口完成,结果我得到错误后,应当运行

如果用来打开配置不能不同同一个文件。用于填充分贝

代码是

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(); 

    } 


我无法找到如何填充数据库,同时显示对话框同步
请帮助任何片段或暗示将有助于
问候如果用来打开相同的文件

+0

http://stackoverflow.com/users/2413303/epicpandaforce请帮助@epicpandaforce – phpdroid

+0

那么不管是什么原因,我没** **未拿到通知,但嘿,我终于到了这里 – EpicPandaForce

+0

只需使用相同的'config'对象,也许使它成为最终或静态的地方。 – beeender

回答

0

配置不能是不同的。

如果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; 
    } 
} 

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

+0

我知道为什么我得到这个错误,因为当我尝试在一个单独的线程'realm = realm.getDefaultInstance();'已经同步完成 – phpdroid

+0

运行confugiration我需要在代码中的检查点,所以其余的行代码只运行,如果线程完成 – phpdroid

+0

我完全只是在启动屏幕上使用这个事件总线 – EpicPandaForce