在 RxJava2 中向 CompositDisposable 添加一个 Maybe

Adding a Maybe to a CompositDisposable in RxJava2

在我的 Activity 中,我有以下内容,导致错误消息 'Error:(190, 35) error: incompatible types: MaybeObserver cannot be converted to Disposable'。我希望这能起作用,因为我一直在用 Completable 和 DisposableCompletableObserver 组合做类似的事情。我如何在 RxJava2 中使用带有 CompositeDisposable 的 Maybe?

private final CompositeDisposable disposables = new CompositeDisposable();

// ...

String id = authManager.getUserID();

Maybe maybe = userManager.getUser(id);

disposables.add(maybe
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribeWith(new DisposableMaybeObserver() {
                           @Override
                           public void onSuccess(Object o) {

                           }

                           @Override
                           public void onError(Throwable e) {

                           }

                           @Override
                           public void onComplete() {

                           }
                       }));

你应该使用 ResourceMaybeObserver:

private final CompositeDisposable disposables = new CompositeDisposable();

String id = authManager.getUserID();

Maybe<Object> maybe = userManager.getUser(id);


disposables.add(maybe
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeWith(new ResourceMaybeObserver<Object>() {
                @Override
                public void onSuccess(@NonNull Object o) {

                }

                @Override
                public void onError(@NonNull Throwable e) {

                }

                @Override
                public void onComplete() {

                }
            }));