即使我得到另一个实例,领域也从错误的线程访问

时间:2016-06-22 10:49:13

标签: android multithreading android-asynctask realm

我试图检索一些数据&在AsyncTask中更新它们。 问题是,即使我在异步任务中更新了我的realm实例,也会出现Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created.
的错误。
这是我的代码:

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

1 个答案:

答案 0 :(得分:2)

尝试在onPreExecute()方法中创建默认权限。

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

希望它会对你有所帮助。