0
我有两个片段,每个都有发布主题,在onResume()初始化时调用onNext(true)。我想结合这两个主题,并在他们都返回true时调用第三类中的某些方法。我需要使用Observable吗?我无法找到合适的操作,因为这些是主题,所以压缩不起作用。我如何结合这些?如何观察碎片初始化RxJava/RxAndroid?
我有两个片段,每个都有发布主题,在onResume()初始化时调用onNext(true)。我想结合这两个主题,并在他们都返回true时调用第三类中的某些方法。我需要使用Observable吗?我无法找到合适的操作,因为这些是主题,所以压缩不起作用。我如何结合这些?如何观察碎片初始化RxJava/RxAndroid?
一个主题既是Observer也是Observable。因此,即使对于主题,您也可以使用zip运算符。
你可以做什么,正在使用zip
和filter
运营商。
Subject<Boolean, Boolean> sub1 = PublishSubject.create();
Observable<Boolean> filter1 = sub1.filter((e) -> e); // filter only event is true
Subject<Boolean, Boolean> sub2 = PublishSubject.create();
Observable<Boolean> filter2 = sub2.filter((e) -> e); // filter only event is true
Observable.zip(filter1, filter2, (one, two) -> true).subscribe()
如果你只是想知道如果每个片段被初始化,也许你可以发出碎片,而不是得到合同,如:如果视图发出的,那么它的准备。
class Fragment1 {
Subject<Fragment, Fragment> sub1 = PublishSubject.create();
public void onResume() {
sub1.onNext(this);
}
}
class Fragment2 {
Subject<Fragment, Fragment> sub1 = PublishSubject.create();
public void onResume() {
sub1.onNext(this);
}
}
class MyView {
public onCreate() {
Observable.zip(sub1, sub2, (one, two) -> true).subscribe((b) -> // dosomething)
}
}
tnx这工作完美无缺:) – ddog 2014-10-20 17:11:34