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

相關文章
相關標籤/搜索