2018年04月06日

RxJavaでSingleのdisposeの仕方

RxJavaリアクティブプログラミング



AndroidでRetrofit+RxJavaを使ってみた
の内容でsubscribe後にdisposeしてないことに気づいたので
それのやり方

・コード

@NonNull
private Disposable mDisposable = Disposables.disposed();

RequestApi.AAA()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(new Consumer() {
@Override
public void accept(Disposable disposable) {
mDisposable = disposable;
}
})
.doFinally(new Action() {
@Override
public void run() {
mDisposable.dispose();
}
})
.subscribe(new DisposableSingleObserver() {
@Override
public void onSuccess(Model model) {
//成功だったら
}
@Override
public void onError(Throwable e) {
//エラーだったら
}
});

@Override
public void onPause() {
super.onPause();
mDisposable.dispose():
}



doOnSubscribeでdisposeをメンバ変数で保持して
doFinallyとonPauseでdisposeします
また、dispose中に同じリクエストしないようにする場合は
mDisposable.isDiposed()でチェックしてみてください
タグ:android OSS java
posted by マスタカ at 22:59 | Comment(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。