Doc
interface Disposable {
fun dispose() // 구독 해제
fun isDisposed(): Boolean // 구독 해제 체크
}
- Observable에게 더이상 데이터를 발행하지 않도록 구독 해제를 도와주는 인터페이스
- onComplete()나 onError() 호출했다면 필요하진 않음
- 액티비티 비정상 종료, Observable 아이템 무한 발행, 오랫동안 실행 등
예외 상황에 대해서 메모리 leak 이 발생할 수 있기 때문에 명시적 호출이 필요한 경우도 있음
CompositeDisposable
Doc
- 여러개의 Disposeable 객체들을 한번에 제어하는 클래스
val composite = CompositeDisposable()
composite.add(Disposable) // disposable 추가
composiet.addAll(Disposable1, Disposable2 ...) // 한번에 여러개 추가
composite.clear()
composite.dispose()
clear() vs dispose()
- clear: disposable들을 해제 후 다시 add 가능 (재사용 가능)
- dispose: isDisposed()가 true가 되기 때문에 add 불가능