大佬教程收集整理的这篇文章主要介绍了android – Realm.io和异步查询,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
service.getDatabaseHelper() .with(getActivity()) //Context that I use to instance the Realm instance .onFinishQuery( new DatabaseHelper.IQueryGetCallBACk<UserRealm>() { @Override public void onGetResult(UserRealm[] results) { for(UserRealm aUser : results){ //Here is where it crashes Log.d("Log","Username -> "+aUser.getName()); } } }) .getUsersFromDb(); //....... //In our "DAO" class public void getUsersFromDb(){ new GetQueryTask() { @Override public UserRealm[] onQueryReadyToBeExecuted(Realm realmInstancE) { RealmQuery<UserRealm> query = realmInstance.where(UserRealm.class); RealmResults<UserRealm> result = query.findAll(); // TODO hacer que devuelva un array ArrayList<UserRealm> users = new ArrayList<UserRealm>(); for (UserRealm u : result) { //Here we can read the RealObject's fine users.add(u); } return users.toArray(new UserRealm[users.size()]); } }.execute(); } //Our abstract task that wraps all the instantiation-transaction behavIoUr public abstract class GetQueryTask<T extends RealmObject> extends AsyncTask<Void,Void,T[]> { @Override protected T[] doInBACkground(Void... params) { //We tried to instantiate this class in several places,here //Send it as parameter through the AsyncTask //context is set in the with(Context ctX) method. Realm realm = Realm.geTinstance(context); return onQueryReadyToBeExecuted(realm); } public abstract T[] onQueryReadyToBeExecuted(Realm realmInstancE); @Override protected void onPostExecute(T[] result) { mCallBACk.onExecute(result); } }
我们主要担心的不是这段代码的“bug”,而是可以像在Realm.io开发人员的示例中那样在UiThread中进行查询.如果是这种情况,那么异步执行查询的所有代码将不再是必需的.
以上是大佬教程为你收集整理的android – Realm.io和异步查询全部内容,希望文章能够帮你解决android – Realm.io和异步查询所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。