我修改了一些与Rxjava相关的导入。AndroidSchedulers
和 Observable
.当我这样做的时候,我得到以下错误。
我不知道该如何处理。
错
这是我在我的presenter中修改的导入。
import io.reactivex.Flowable;
//import rx.schedulers.Schedulers;
import io.reactivex.schedulers.Schedulers;
//import rx.Observable;
import io.reactivex.Observable;
//import rx.android.schedulers.AndroidSchedulers;
import io.reactivex.android.schedulers.AndroidSchedulers;
错误在这段代码上,如图所示。
public void setUserFocusChangeObservable(Observable<Boolean> observable) {
subscriptions.add(observable
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Boolean>() {
@Override
public void call(Boolean hasFocus) {
//If screen is dimmed, do not allow interaction
if (!screenUtils.isScreenDimmed()) {
if (user != null) {
if (!hasFocus) {
view.renderUserText(user.toString());
}
} else {
//Set text to nothing if interaction happens with autosuggest when screen is dimmed
view.renderUserText("");
}
}
}
}));
}
在图片中,我还高亮了我从Gradle导入的内容。
您的建议很有帮助
RxJava 2改变了RxJava 1中的几个类名,特别是。Action1
已改为 Consumer
:
.subscribe(new Consumer<Boolean>() { /* ... */ })
确保导入 io.reactivex.functions.Consumer
而不是 java.util.function.Consumer
.
或者,你也可以使用Java 8 lambda。
.subscribe(hasFocus -> { /* ... */ })
当参数为 subscribe
是固定的,这也将揭示另一个类名的差异。CompositeSubscription
现在是 CompositeDisposable
.