Fly*_*mba 4 android android-lifecycle rx-android
我知道如果我订阅了Activity或Fragment中的observable,我应该使用rxlifecycle-components或rxlifecycle-navi将它绑定到它们各自的生命周期.
但是,我现在正在从ViewHolder(扩展RecyclerView.ViewHolder)中订阅一个observable ,我担心如果视图被破坏并且订阅仍然有效会发生什么.
我应该在哪个生命周期中绑定这个可观察对象以及如何绑定?
希望我在写问题时找到了答案。
大多数适配器都会Context在其构造函数中接收参数等。例如:
public MyAdapter(Context context, ... ) { ... }
Run Code Online (Sandbox Code Playgroud)
我们可以将其更改为接收 a RxActivity,它也可以用作上下文:
public MyAdapter(RxActivity parent, ... ) {
this.parent = parent;
...
}
Run Code Online (Sandbox Code Playgroud)
现在在ViewHolder:
myObservable
.compose(parent.bindToLifecycle())
.subscribe();
Run Code Online (Sandbox Code Playgroud)
这确保了如果父级(活动或片段)被销毁,任何订阅都将结束。
| 归档时间: |
|
| 查看次数: |
3328 次 |
| 最近记录: |