어제 설명한 '실행 중인 API 중지'를 IT Bookstore 앱에 적용해 보았습니다. 구현 과정은 다음과 같습니다.
실행 중인 API 중지 적용 과정
- 베이스 뷰모델 역할을 맡는 BaseViewModel 클래스에 CompositeDisposable 객체를 필드로 추가
open class BaseViewModel : ViewModel() {
protected val disposables = CompositeDisposable()
// ...
}
- BaseViewModel 클래스에 onCleared 함수를 오버라이딩하고, disposables 객체의 clear() 함수 호출
override fun onCleared() {
disposables.clear()
super.onCleared()
}
- BaseViewModel을 상속받는 하위 클래스들에서 Observable 구현 객체(이하 Observable)의 subscribe() 함수 호출에 이어 disposables 객체에 이 Observable을 추가
observable.subscribe(successConsumer, errorConsumer)
.let {
disposables.add(it)
}
적용 후 테스트 결과
테스트 결과, 앱 작동에는 문제가 없습니다. 그러나 정말로 잘 작동하는지는 겉으로 보이는 동작만으로는 파악하기 어렵습니다. 내부 동작을 테스트해보는 것이 좋습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit