RxAndroid防止内存泄露

RxJava并不会自动防止这种状况发生,好在它能够很容易地防止内存泄露。Observable.subscribe()方法会返回一个Subscription对象,这个对象仅仅有两个方法:isSbscribed()unsubscribe()。你能够在Activity/Fragment的onDestroy方法中调用Subscription.isSubscribed()检测是否这个异步任务仍在进行。若是它仍在进行,则调用unsubscribe()方法来结束任务,从而释放其中的强引用,防止内存泄露。若是你使用了多个ObservableSubscriber,那么你能够将它们添加到CompositeSubscription中,并调用CompositeSubscription.unsubscribe()结束全部的任务。android

 

参考:https://github.com/hehonghui/android-tech-frontier/blob/master/issue-34/%E5%9C%A8Android%E5%BC%80%E5%8F%91%E4%B8%AD%E4%BD%BF%E7%94%A8RxJava.mdgit

相关文章
相关标签/搜索