LifeCycle 2

메모리 누수 이슈 기록 (LocationListener)

LocationListener, LocationManager를 이용하여 현재 위치를 실시간으로 업데이트하는 기능을 구현하고 있는데 LocationManager쪽에서 계속 Leak이 발생했었다. 나는 Fragment 쪽에서 LocationListener 인터페이스를 implement하고 있었다. destroy될 때 locationManager.removeUpdate() 를 하지 않으면 Leak이 발생할 수 있다는 건 이해가 됐는데, 그렇다면 난 onStop() 쪽에서 removeUpdate()했는데도 왜 발생하는건지 의아했다. 시도 1 LocatoinManager를 destroyView할 때 null로 처리를 안해서 그런가? 싶어서 lateinit var locationManager: LocationMan..

Programming/Android 2022.01.30

RxJava + Retrofit 으로 통신 모듈 구현하기

RxJava3와 Retrofit2 를 사용하여 통신 모듈을 만들어보자 추가로 여기서 DI는 hilt를 사용했다. api는 ITunes Api를 사용하겠다. 샘플 코드로 적당한 api인 것 같다. 만들 클래스는 아래와 같다.(당장 api 통신을 하기에는 약간의 부가적인 것도 있지만 확장성을 생각해서 전부 설명하겠다.) - ITunesService - ITunesClient - NetworkModule ITunesService 이다. 반환형이 Single으로 둔 이유는 RxJava의 Observable중 Single이 한 번의 이벤트에서 사용될때 쓰이기 때문이다. 참고로 나는 여기서 한번 @Query의 어노테이션을 깜박하고 빼먹었는데 `No Retrofit annotation found. (parameter..

Programming/Android 2021.10.03