SqlBrite不能使用AndroidSchedulers.mainThread()

时间:2017-02-21 11:01:26

标签: android rx-java observable rx-android sqlbrite

我是初学者,使用sqlbrite,rxjava。所以,我必须在UI线程上运行一些代码(具体来说,从我从更新的db SELECT查询中获得的游标中添加一些标记)。

这是我的首发设置:

sqlBrite = new SqlBrite.Builder().build();
resolver = sqlBrite.wrapContentProvider(mContentResolver, Schedulers.io());
Observable<SqlBrite.Query> query = resolver.createQuery(SmogContract.MeasurementEntry.CONTENT_URI, null, null, null, null, true);

然而,当我想要这样做时:

query.observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Subscriber<SqlBrite.Query>() {
                @Override
                public void onCompleted() {

                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onNext(SqlBrite.Query query) {
                        ////add marker on a map from updated cursor select for latlng which I have in db
                        /// db is updated in some intervals from API
                }
            });

它给我一个AndroidSchedulers.mainThread方法的错误:

observeOn (Rx.Scheduler) in Observable cannot be applied to io.reactivex.Scheduler

在我的gradle中,我与sqlbrite相关,rxjava:

compile 'com.squareup.sqlbrite:sqlbrite:1.1.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'

还有retrolambda。 如何正确设置?没有rxandroid和rxjava,我无法使用AndroidSchedulers.mainThread()。

1 个答案:

答案 0 :(得分:0)

所以,如果有人会感兴趣 - 现在它适用于我这个设置:

的gradle:

compile 'com.squareup.sqlbrite:sqlbrite:1.1.1'
compile 'io.reactivex:rxandroid:1.2.1'

以及我的活动中的导入:

import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;