본 내용은 필자가 학습한 내용을 정리하는 내용입니다. 대부분 의 내용이 아래 책의 내용이므로 원서를 구매해서 직접보시는걸 추천드립니다! RxJava 프로그래밍 리액티브 프로그래밍 기초부터 RxAndroid까지 한 번에 저자님의 블로그 https://brunch.co.kr/@yudong#info |
RxLifeCycle 라이브러리
RxAndroid 에는 RxLifeCycle라는 라이브러리를 제공합니다 .
안드로이드 액티비티와 프레그먼트의 라이프사이클을 RxJava에서 사용할 수 있게 합니다.
좀 더 구체적으로 설명하면, 안드로이드와 UI 라이프사이클을 대체한다기 보다 구독할 때 발생할 수 있는 메모리 누수를 방지하기 위해 사용합니다.
완료하지 못한 구독을 자동으로 해제합니다.
RxLifeCycle 라이브러리는 안드로이드의 라이프 사이클에 맞게 Observable을 관리할 수 있는 컴포넌트를 제공합니다
RxLifeCycle 라이프 사이클 컴포넌트
컴포넌트 |
설명 |
RxActivity |
액티비티에 대응합니다 |
RxDialogFragment |
Native/Support 라이브러리인 DialogFramgment에 대응합니다. |
RxFragment |
Native/Support 라이브러리인 Fragment에 대응합니다. |
RxPreferenceFragment |
PreferenceFragment 에 대응합니다. |
RxAppCompatActivity |
Support라이브러리 AppCompatActivity에 대응합니다. |
RxAppCompatDialogFragment |
Support라이브러리 AppCompatDialogFragment에 대응합니다. |
RxFragmentActivity |
Supprot 라이브러리 FragmentActivity에 대응합니다 |
RxLifeCycle 라이브러리 사용을 위한 환경설정
implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.1.0'
RxLifeCycle 라이브러리 활용 예
}
AppCompatActivity 클래스 대신 RxAppCompatActivity 클래스를 상속하도록 바꿨고,
Observable 생성 부분에서는 compose() 함수로 라이프 사이클을 관리하도록 추가했습니다. Observable은 HelloActivityV3 클래스가 종료되면 자동으로 해제(dispose) 됩니다.
한편 RxJava 2.x 에서는 RxLifecycle의 컴포넌트 이외에도 메모리 관리를 위한 방법을 제공합니다 . 예를들어 RxJava에 익숙한 개발자들은 안드로이드의 전통적인 라이프 사이클 관리 기법보다는 직접 관리하기 편한 dispose() 함수를 사용하는 것 등에 있습니다.
'Rx' 카테고리의 다른 글
안드로이드의 RxJava 활용 - 4( 액티비티 중복 실행 문제) (0) | 2018.12.30 |
---|---|
안드로이드의 RxJava 활용 - 3( UI 이벤트처리) (2) | 2018.12.30 |
안드로이드의 RxJava 활용 - 1 (Hello world,제어 흐름) (0) | 2018.12.28 |
안드로이드의 RxJava 활용 - (RxAndroid) (2) | 2018.12.28 |
스케줄러 -7( observeOn함수의 활용) (0) | 2018.12.28 |
댓글