Gus*_*son 8 android memory-leaks rx-java2 android-livedata android-architecture-components
假设我有一个Flowable,它在应用程序的不同部分之间共享.
在我想要观察它的每个片段中,我将其转换为LiveData LiveDataReactiveStreams.fromPublisher
以避免泄漏和崩溃.我现在有一个包装我的Flowable的LiveData.
然后我将LiveData传递给我的ViewModel(在ViewModelFactory中).据我了解,我可以继续使用LiveData而不用担心泄漏.
现在,我不想直接观察LiveData,而是试图将它转换回Flowable with LiveDataReactiveStreams.toPublisher
和Flowable.fromPublisher
,而是订阅Flowable.这是一个Flowable,它包装了一个包装Flowable的LiveData
我的问题是:我是否要担心处理此Flowable的订阅?我希望LiveData会充当"障碍",防止我的上下文泄漏回根Flowable,但我不太确定.
换一种说法:
当碎片被破坏时,在C中访问的视图是否泄漏到A?
考虑到当前的实现,您仍然需要手动维护订阅。生命周期仅用于处理实时数据的观察。
mLiveData.observe(mLifecycle, LiveDataSubscription.this);
Run Code Online (Sandbox Code Playgroud)
仅当请求非正数的项目并发送错误时,观察才会自动取消。然后这将处理订阅。由于生产者永远不会完成,它永远不会自行处置订阅,因此如果您不自己处置订阅,您就会泄漏订阅。
归档时间: |
|
查看次数: |
594 次 |
最近记录: |