是的,当通过添加返回的
Disposable
到a
CompositeDisposable
,当您有多个要跟踪的流时,它很有用:
final CompositeDisposble cd = new CompositeDisposable();
void onCreate() {
keyboardChangeSubject = BehaviorSubject.create();
cd.add(
keyboardChangeSubject
.debounce(300, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(isKeyBoardOpen -> {
myButton.setVisibility(isKeyBoardOpen ? View.GONE : View.VISIBLE);
})
);
}
@Override
protected void onKeyboardChange(boolean isKeyboardOpen) {
keyboardChangeSubject.onNext(isKeyboardOpen);
}
@Override
public void onDestroy() {
cd.clear();
}