[Android Warning] Disposable
가끔 Rx를 쓰다보면 위 그림과 같이 통채로 오줌이 발생하는 경우가 있었다.
처음엔 Rx에서 존재감을 내뿜을라고 일부러 눈에 잘 보이게 해 놓은줄 알았는데 그냥 경고다
원인
Observable 객체에서 발행할 아이템을 정의한 후 subscribe()를 통해 스트림을 생성하고 아이템을 발행했다. Rx를 사용하면 return되는 객체인 disposable. 이는 비동기구문이라 사용하지 않으면 dispose를 시켜줘야하는데, 위 코드에는 dispose를 받는 변수가 없어 dispose를 따로 시키지 않을거라고 안드로이드 스튜디오에서 인식하여 경고창이 나는 것이다.
해결
변수를 붙혀준다.
val disposable = repository.getImageList(contentId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
setList(it)
},
{
onFailLoad()
Log.e(ERROR, "DetailFragmentViewModel: ${it.message}")
}
)
// dispose하는 것도 잊지 말기
override fun onClear() {
disposable.dispose()
}
Author And Source
이 문제에 관하여([Android Warning] Disposable), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@thevlakk/Android-Warning-disposable저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)