重新订阅Android片段中的Observable

重新订阅Android片段中的Observable,android,fragment,rx-java,rx-android,Android,Fragment,Rx Java,Rx Android,RxJava/Android新手,想知道在片段中的哪里放置订阅者 类似于以下代码的内容现在放在片段的onCreate中onNext。它会多次重新加载接收到的数据,只需执行一次。正确的处理方法是什么 如果我取消订阅,当再次返回(导航到某个活动后)到此片段时,在何处以及如何重新订阅以侦听新数据 Some.replaySubject .subscribeOn(Schedulers.newThread()) .obse

RxJava/Android新手,想知道在片段中的哪里放置订阅者

类似于以下代码的内容现在放在片段的
onCreate
中<当接收到不需要的新数据时,会多次调用code>onNext。它会多次重新加载接收到的数据,只需执行一次。正确的处理方法是什么

如果我取消订阅,当再次返回(导航到某个活动后)到此片段时,在何处以及如何重新订阅以侦听新数据

   Some.replaySubject
                    .subscribeOn(Schedulers.newThread())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Observer<Status>() {
                        @Override
                        public void onNext(Status status) {

                            switch (status) {
                                case NotLoaded:
                                   ...
                                    break;
                                case Loading:
                                    showSpinner();
                                    break;
                                case Background_Loading:
                                  ...
                                    break;
                                case Complete:
                                   reloadData();
Some.replaySubject
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.订阅(新观察员){
@凌驾
public void onNext(状态){
开关(状态){
案例未加载:
...
打破
箱子装载:
showSpinner();
打破
案例背景信息加载:
...
打破
案例完成:
重新加载数据();

使用take 1。可观察到的在第一次发射后完成

您只能发射由可观测对象发射的前n项,然后 通过修改可观察对象,在忽略其余部分的情况下完成 与接线员联系

Some.replaySubject
.采取(1)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.订阅(新观察员){
@凌驾
public void onNext(状态){
开关(状态){
案例未加载:
...
打破
箱子装载:
showSpinner();
打破
案例背景信息加载:
...
打破
案例完成:
重新加载数据();
若要重新订阅,请将此rx链放在onStart?onResume?中生命周期回调将重新初始化它的某个位置。在存储中处置它

Some.replaySubject
    .take(1)
    .subscribeOn(Schedulers.newThread())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Observer<Status>() {
        @Override
        public void onNext(Status status) {

            switch (status) {
                case NotLoaded:
                    ...
                    break;
                case Loading:
                    showSpinner();
                    break;
                case Background_Loading:
                    ...
                    break;
                case Complete:
                    reloadData();