https://m.post.naver.com/viewer/postView.nhn?volumeNo=6721006&memberNo=34635212
간단하게 RxJava란 무엇일까?
=> '비동기 처리를 효과적으로 할 수 있게 도와주는 라이브러리' 라고 보면 된다.
내가 RxJava를 사용하게 된 이유는, Retrofit api 통신에서 여러 api 작업이 끝나는 시점을 catch 해야 하는데, 성공 시점에 차례차례로 api 들을 호출해야 하는 안좋은 구조를 개선하기 위해서이다.
<함수 설명>
map() : 데이터를 다른 형태로 가공
filter(): 조건 필터링
<구분점>
Observable과 Subject 차이: Observable 은 내부에서, Subject는 외부에서 데이터를 주입
<비동기 처리>
쓰레드 선언 종류
1. Schedulers.io() : File IO, Network IO 등의 로직 스레드
2. Schedulers.computation() : 단순 계산 스레드
3. AndroidSchedulers.mainThread() : UI 처리 스레드
쓰레드 사용 시점에 관한 함수
각 함수명으로 의미를 파악하려면 너무 어렵다.
외우려면 먼저 구독한 후, 계속 관찰 이라는 순서이니까 subscribeOn 은 선작업, observeOn 은 후작업 으로 외우기로 했다.
1. subscribeOn(): 설정 관련 시점, 즉 Observable.create(), Observable.just() 시점에 어떤 스레드를 사용할건지 정한다.
2. observeOn(): 설정 후의 시점, 즉 filter, map 등의 오퍼레이션에 대한 시점에 어떤 스레드를 사용할건지 정한다.
<Rxjava2 의 Disposable>
새로운 Observable 이라고 보면 된다.
dispose: 처리/ 처분하다.
ex) to dispose of stolen property. (훔친 물건을 처분하다.)
Disposable이 나온 이유: 해당 화면(액티비티, 프레그먼트) 이 종료될 때, Observable의 실행 여부는 필요 없어져서 모두 취소할 필요가 있다. Disposable을 관리할 수 있는 CompositeDisposable() 이 있고, 실행될 때 add() 했다가 clear() 로 취소할 수 있다.
<함수 설명>
subscribeWith(): subscribe() 와 비슷하고, Disposable 을 반환한다.
'android' 카테고리의 다른 글
Android 저장소 시스템 (5) | 2020.03.05 |
---|---|
RxJava 의 핵심 기술 - concat, merge, zip (0) | 2020.02.27 |
How to draw Rect Overlay View? (0) | 2020.01.05 |
ViewPager를 가진 Dialog 구현 주의사항 (0) | 2020.01.02 |
Architecture 설계 (0) | 2019.12.30 |