Android alm实例。在doInBackground()中打开一个领域实例,而在中不关闭它最后{是不好的。顺便说一句findalsync()将不起作用,因为它位于非循环后台线程上,因此它没有处理程序来通知异步查询已成功完成,他应该使用findAll() Object

Android alm实例。在doInBackground()中打开一个领域实例,而在中不关闭它最后{是不好的。顺便说一句findalsync()将不起作用,因为它位于非循环后台线程上,因此它没有处理程序来通知异步查询已成功完成,他应该使用findAll() Object,android,android-asynctask,realm,Android,Android Asynctask,Realm,alm实例。在doInBackground()中打开一个领域实例,而在中不关闭它最后{是不好的。顺便说一句findalsync()将不起作用,因为它位于非循环后台线程上,因此它没有处理程序来通知异步查询已成功完成,他应该使用findAll() Object obj = realmObj.where(ExplorerFolderData.class) .equalTo(Constants.DBPARENTID,"0")


alm实例。在
doInBackground()
中打开一个领域实例,而在
中不关闭它最后{
是不好的。顺便说一句
findalsync()
将不起作用,因为它位于非循环后台线程上,因此它没有处理程序来通知异步查询已成功完成,他应该使用
findAll()
Object obj = realmObj.where(ExplorerFolderData.class)
                    .equalTo(Constants.DBPARENTID,"0")
                    .or()
                    .equalTo(Constants.DBPARENTID,"-1")
                    .findAllAsync();
public class MyApplication extends Application
{
    private static Context appContext;
    @Override
    public void onCreate() {
        super.onCreate();
        RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this)
                .name(Realm.DEFAULT_REALM_NAME)
                .schemaVersion(0)
                .deleteRealmIfMigrationNeeded()
                .build();
        Realm.setDefaultConfiguration(realmConfiguration);
        appContext = getApplicationContext();
    }

     public static Context getAppContext(){
        return appContext;
    }
}
//This interface will get back the status to Activity/Fragment
public interface OnAsyncTaskComplition {
    public void networkResponse(ResultObject responseObject);

}
public class NetworkProcessor{

    private OnAsyncTaskComplition mCaller;

    public NetworkProcessor(Activity activity){
        //setting caller Activity/Fragment to get back data
        mCaller=(OnAsyncTaskComplition)activity;
        processNetworkData();
    }

    //Method for Volley Network Procesing
    public void processNetworkData(){

    JsonObjectRequest jsonObjReq = new JsonObjectRequest(methodReq,urlBuffer.toString(),null,
                        new Response.Listener<JSONObject>(){

        @Override
        public void onResponse(JSONObject response) {
                JsonProcessor jsonProcessor=new JsonProcessor();

                    mCaller.networkResponse(jsonProcessor.getThingList(response));

                }
            }, new Response.ErrorListener(){
            @Override
            public void onErrorResponse(VolleyError error) {
               //Handle error also back to caller
             }
            });
    }

    }
public class JsonProcessor {

    public status void getThingList(JSONObject response){
        boolean status=false;
        try{
            RealmProcessor realmProcessor=RealmProcessor.with(MyApplication.getAppContext());
            Realm realmObj =  realmProcessor.getRealm();

            //Code for setting values to RealmObject class  ExplorerFolderData

            realmObj.beginTransaction();
            realmObj.copyToRealm(ExplorerFolderData RealmObject which has values populated);
            realmObj.commitTransaction();
            status=true;
        }catch(Exception e){

        }
    }
}
public class RealmProcessor {

    private static RealmProcessor instance;
    private Realm realm;

     private RealmProcessor(Context context) {
        realm = Realm.getDefaultInstance();
    }

    public static RealmProcessor with(Context context) {

        if (instance == null) {
            instance = new RealmProcessor(context);
        }
        return instance;
    }

    public Realm getRealm() {
        return realm;
    }

    }
public class ActivityCustomer extends AppBaseActivity implements OnAsyncTaskComplition
{

    //Method called on Button click
    private void callNetwork(){
    new NetworkProcessor(this);
    }

    @Override
    public void networkResponse(ResultObject responseObject) {

        new ExplorerDBOperation().execute();

    }

    class ExplorerDBOperation extends AsyncTask<Void,Boolean,Boolean> {
        ProgressDialog dialog;

        @Override
        protected Boolean doInBackground(Void... params) {
            RealmProcessor realmProcessor=RealmProcessor.with(MyApplication.getAppContext());
            Realm realmObj =  realmProcessor.getRealm();

            //ERROR OVER HERE
            Object obj = realmObj.where(ExplorerFolderData.class)
                    .equalTo(Constants.DBPARENTID,"0")
                    .or()
                    .equalTo(Constants.DBPARENTID,"-1")
                    .findAllAsync();
                    return true;
        }

}
@Override
protected Boolean doInBackground(Void... params) {
    Realm realmObj =  Realm.getDefaultInstance();

    try {
        Object obj = realmObj.where(ExplorerFolderData.class)
            .equalTo(Constants.DBPARENTID,"0")
            .or()
            .equalTo(Constants.DBPARENTID,"-1")
            .findAll();
    } catch (Exception ex) {
        // handle error
    } finally {
        realmObj.close();
    }

    return true;
}