/** * 绑定一个 Activity、Fragment 的生命周期,自动释放资源 * <br/> * 例如:网络请求时绑定{@link ActivityEvent#STOP} 或 {@link FragmentEvent#STOP}, * onStop()时会自动取消网络请求. * * @param event 事件类型 * @see ActivityEvent * @see FragmentEvent */ @Override public <Type> ObservableTransformer<Type, Type> bindEvent(final int event) { final Observable<Integer> observable = mBehaviorSubject.filter(new Predicate<Integer>() { @Override public boolean test(Integer integer) throws Exception { return integer == event; } }).take(1); return new ObservableTransformer<Type, Type>() { @Override public ObservableSource<Type> apply(Observable<Type> upstream) { return upstream.takeUntil(observable); } }; }
/** * 绑定一个 Activity、Fragment 的生命周期,自动释放资源 * <br/> * 例如:网络请求时绑定{@link ActivityEvent#STOP} 或 {@link FragmentEvent#STOP}, * onStop()时会自动取消网络请求. * * @param event 事件类型 * @see ActivityEvent * @see FragmentEvent */ @Override public <Type> ObservableTransformer<Type, Type> bindEvent(final int event) { final Observable<Integer> observable = mBehaviorSubject.filter(new Predicate<Integer>() { @Override public boolean test(Integer integer) throws Exception { return integer == event; } }).take(1); return new ObservableTransformer<Type, Type>() { @Override public ObservableSource<Type> apply(Observable<Type> upstream) { return upstream.takeUntil(observable); } }; }
public WebSocketClient(Supplier<OkHttpClient> okHttpClient, Request endpoint) { this.okHttpClient = okHttpClient; this.endpoint = endpoint; this.status .filter(status -> status.equals(RadixClientStatus.FAILURE)) .debounce(1, TimeUnit.MINUTES) .subscribe(i -> { this.messages = PublishSubject.create(); this.status.onNext(RadixClientStatus.CLOSED); }); }
private Observable<List<ImageItem>> getListItem(final ResultHandlerFragment finalFragment) { return finalFragment.getAttachSubject().filter(new Predicate<Boolean>() { @Override public boolean test(@NonNull Boolean aBoolean) { return aBoolean; } }).flatMap(new Function<Boolean, ObservableSource<List<ImageItem>>>() { @Override public ObservableSource<List<ImageItem>> apply(@NonNull Boolean aBoolean) { Intent intent = new Intent(finalFragment.getActivity(), RxPickerActivity.class); finalFragment.startActivityForResult(intent, ResultHandlerFragment.REQUEST_CODE); return finalFragment.getResultSubject(); } }).take(1); } }
.filter(new Predicate<Boolean>() { @Override public boolean test(@io.reactivex.annotations.NonNull Boolean isAttached) throws Exception {
.filter(new Predicate<Boolean>() { @Override public boolean test(@io.reactivex.annotations.NonNull Boolean isAttached) throws Exception {