在观察前取消上一次的订阅,避免重复订阅导致观察多次运行。
示例代码:
Button button = findViewById(R.id.button);
Observable observable = Observable.just("Hello");
Disposable disposable = null;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (disposable != null && !disposable.isDisposed()) {
disposable.dispose(); // 取消上一次订阅
}
disposable = observable.subscribe(new Consumer() {
@Override
public void accept(String s) throws Exception {
Log.d(TAG, s);
}
});
}
});