2016-06-07 58 views
0

我總是得到這樣的錯誤:訪問境界對象時,我嘗試從一個異步任務訪問數據的境界裏面的AsyncTask

06-07 16:13:38.745: E/AndroidRuntime(21340): FATAL EXCEPTION: AsyncTask #2 
    06-07 16:13:38.745: E/AndroidRuntime(21340): Process: nl.hgrams.passenger, PID: 21340 
    06-07 16:13:38.745: E/AndroidRuntime(21340): java.lang.RuntimeException: An error occurred while executing doInBackground() 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at android.os.AsyncTask$3.done(AsyncTask.java:309) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at java.lang.Thread.run(Thread.java:818) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): Caused by: java.lang.IllegalStateException: Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created. 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at io.realm.BaseRealm.checkIfValid(BaseRealm.java:404) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at io.realm.PSUserActivityMonthRealmProxy.realmGet$weeks(PSUserActivityMonthRealmProxy.java:134) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at nl.hgrams.passenger.model.PSUserActivityMonth.getWeeks(PSUserActivityMonth.java:83) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at nl.hgrams.passenger.activities.PSProfileActivity$8$1.doInBackground(PSProfileActivity.java:361) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at android.os.AsyncTask$2.call(AsyncTask.java:295) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    06-07 16:13:38.745: E/AndroidRuntime(21340): ... 4 more 

我怎樣才能訪問裏面的AsyncTask的數據?我試圖從DB再次境界查詢電話獲取的數據,但我仍然得到這個問題

+0

請顯示您嘗試訪問它的代碼。這樣我們就更容易引導你。 –

回答

3

對於將要使用的每個方法,還有的異步等效,如:

RealmResults<User> result = realm.where(User.class) 
          .equalTo("name", "John") 
          .or() 
          .equalTo("name", "Peter") 
          .findAllAsync(); 

their website