ddo*_*dog 0 android android-fragments rx-java
我有两个片段,每个片段都有发布主题,在onResume()初始化时调用onNext(true).我想结合这两个主题,并在它们都返回true时调用第三类中的某些方法.我需要使用Observable吗?我找不到合适的操作,zip不起作用,因为这些是主题.我该如何结合这些?
主题既是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()
Run Code Online (Sandbox Code Playgroud)
如果您只是想知道每个片段是否已初始化,也许您可以发出片段而不是获得合同,如果:如果发出视图,那么它就准备好了.
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)
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1487 次 |
最近记录: |