MudBodhisattva
V2EX  ›  Android

RXAndroid 的疑问

  •  
  •   MudBodhisattva · Jun 14, 2018 · 12316 views
    This topic created in 2906 days ago, the information mentioned may be changed or developed.

    本人新人一枚,望各位前辈不吝赐教。 当 io 线程完成操作抛到 android 线程去更新 UI 后,这个订阅关系还在吗?还是说从内存中清空了? 如果说内存清空了,订阅关系也没有了,那么一下方法执行完毕之后 CompositeSubscription 我没有 unsubscribe 会怎么样,会造成内存泄漏吗。
    public void data(){ CompositeSubscription.add( …… )

    }

    KNOX
        1
    KNOX  
       Jun 15, 2018 via Android
    还在,建议你再看看观察者模式。
    MudBodhisattva
        2
    MudBodhisattva  
    OP
       Jun 15, 2018
    @KNOX 请问我可以在 onNext 里面和 onError 这里对 CompositeSubscription 进行 unsubscribe 吗?
    KNOX
        3
    KNOX  
       Jun 15, 2018
    @MudBodhisattva 如果已经添加订阅就可以。
    MudBodhisattva
        4
    MudBodhisattva  
    OP
       Jun 15, 2018
    @KNOX

    final CompositeSubscription mCompositeSubscriptions2 = new CompositeSubscription();
    mCompositeSubscriptions2.add(
    updateData(user)
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Observer<user>() {
    @Override
    public void onCompleted() {

    }

    @Override
    public void onError(Throwable e) {
    mCompositeSubscriptions2.unsubscribe();
    }

    @Override
    public void onNext(user user) {
    mCompositeSubscriptions2.unsubscribe();
    }
    })
    );


    比如说我 add 了好多,然后在其中一个取消订阅所有
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2527 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:49 · PVG 08:49 · LAX 17:49 · JFK 20:49
    ♥ Do have faith in what you're doing.