如何将Retrofit 2与Realm和RxJava结合

泽亚德·加瑟(Zeyad Gasser)

我想将对领域的改造响应保存在后台线程中,然后将其传递给UI线程,但这有点棘手,因为Realm对线程非常敏感。因此代码看起来像这样,请对所有更好的解决方案提交修改:)

restApi.userRealmList()
        .doOnNext(userRealmModels -> {
            if (userRealmModels != null){
                mRealm = Realm.getInstance(mContext);
                mRealm.asObservable()
                        .map(realm -> mRealm.copyToRealmOrUpdate(userEntity))
                        .subscribe(new Subscriber<Object>() {
                            @Override
                            public void onCompleted() {

                            }

                            @Override
                            public void onError(Throwable e) {
                                e.printStackTrace();
                            }

                            @Override
                            public void onNext(Object o) {
                                Log.d("RealmManager", "user added!");
                            }
                        });
            }})
        .map(userEntityDataMapper::transformAll)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Subscriber<List<User>>() {
             @Override
             public void onCompleted() {
                 hideViewLoading();
             }

             @Override
             public void onError(Throwable e) {
                 hideViewLoading();
                 showErrorMessage(new DefaultErrorBundle((Exception) e));
                 showViewRetry();
             }

             @Override
             public void onNext(List<User> users) {
                 showUsersCollectionInView(users);
             }
        });
克里斯蒂安·梅尔基奥尔

您的代码看起来不像可以编译吗?例如什么userEntity另外,您的copyToRealmOrUpdate不在事务内,因此也会崩溃,但与线程无关。

如果要在将某些数据发送到UI之前将其另存为副作用,则应该能够执行以下操作:

restApi.userRealmList()
        .doOnNext(userRealmModels -> {
            if (userRealmModels != null) {
                Realm realm = Realm.getInstance(mContext);
                realm.beginTransaction();
                realm.copyToRealmOrUpdate(userRealmModels);
                realm.commitTransaction();
                realm.close();
            }})
        .map(userEntityDataMapper::transformAll)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Subscriber<List<User>>() {
             @Override
             public void onCompleted() {
                 hideViewLoading();
             }

             @Override
             public void onError(Throwable e) {
                 hideViewLoading();
                 showErrorMessage(new DefaultErrorBundle((Exception) e));
                 showViewRetry();
             }

             @Override
             public void onNext(List<User> users) {
                 showUsersCollectionInView(users);
             }
        });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将接口声明从Retrofit更新到Retrofit 2

来自分类Dev

将@PUT与Retrofit 2和OkHttp3结合使用

来自分类Dev

使用Retrofit和Realm纠正RxJava中的流程

来自分类Dev

使用Retrofit和Realm纠正RxJava中的流程

来自分类Dev

如何将COUNTIF与OR结合

来自分类Dev

如何将:hover与:not()结合?

来自分类Dev

如何将COUNTIF与OR结合

来自分类Dev

如何将play框架和angular2结合起来?

来自分类Dev

如何将SWRevealVC与didSelectRowAtIndexPath和prepareForSegue结合使用?

来自分类Dev

您如何将minicom与stdin和stdout结合使用?

来自分类Dev

如何将SWRevealVC与didSelectRowAtIndexPath和prepareForSegue结合使用?

来自分类Dev

如何将Cobertura与Cucumber jvm和Maven结合使用?

来自分类Dev

如何将 openCV 中的 imshow() 和 moveWindow() 与 python 结合?

来自分类Dev

如何将select和insert结合到sql中

来自分类Dev

我如何将lodash与Ionic 2结合使用?

来自分类Dev

如何将Python函数与rpy2结合?

来自分类Dev

RxJava和Retrofit2:NetworkOnMainThreadException

来自分类Dev

NetworkOnMainThreadException与Retrofit-beta2和rxjava

来自分类Dev

如何将Angular2与jinja2模板和烧瓶结合起来

来自分类Dev

如何将多个请求与 rxjava2 正确组合?

来自分类Dev

结合使用@Path和@Url参数和Retrofit2

来自分类Dev

如何将条形图和参数估计图结合为一个图形。ggplot2

来自分类Dev

如何将子节点与JSX结合?

来自分类Dev

如何将选项与Kleisli结合

来自分类Dev

如何将AutoDataAttribute与InlineData结合

来自分类Dev

如何将OAuth与Imgur结合使用?

来自分类Dev

如何将多个IF函数与jQuery结合?

来自分类Dev

如何将Django与Jade结合

来自分类Dev

如何将Tor与Java结合使用

Related 相关文章

热门标签

归档