2016-06-22 9 views
2

私はAsyncTaskでそれらを更新するためにいくつかのデータ&を取得しようとしています。 非同期タスクでレルムインスタンスを更新していても、
Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created.
というエラーが発生します。
は、ここに私のコードです:別のインスタンスを取得した場合でも、icorrectスレッドからのrealmアクセス

new AsyncTask<Void, Void, Void>(){ 
      @Override 
      protected Void doInBackground(Void... params) { 
       mRealm = Realm.getDefaultInstance(); 
       // my queries & updates 
       return null; 
      } 
}.execute(); 
+1

スタックトレースが不平を言っているコードを投稿し、問題の行を指してください。 –

答えて

2

onPreExecute()方法でデフォルトinsanceを作成してください。

new AsyncTask<Void, Void, Void>(){ 
      private Realm mRealm; 
      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       mRealm = Realm.getDefaultInstance(); 
      } 

      @Override 
      protected Void doInBackground(Void... params) { 
       // my queries & updates 
       return null; 
      } 
     }.execute(); 

ご希望の場合はお手数ですが、

+0

これで問題が解決する理由を説明できますか? –

関連する問題