본문 바로가기

안드로이드/ReactiveX

(4)
RxJava - Scheduler 연습 RxJava의 Scheduler를 혼자 연습해봤다. ​ stopThread 함수는 다음과 같다. Observable stopThread(int s){ try { Thread.sleep(1000); } catch (Exception e){ e.printStackTrace(); } return Observable.just(s); } ​ ​ ​ ​ ​ ​ 기본형태 Observable.range(1, 3) .flatMap(s -> stopThread(s)) .subscribe(s -> Log.d("첫번 째 Observable", s + " - " + Thread.currentThread().getName())); Observable.range(1, 3) .flatMap(s -> stopThread(s)) .su..
뜨거운/차가운 Observable 차가운 Observable은 구독하면 처음부터 데이터를 받습니다. - 기본 Observable이라고 보시면 됩니다. - 수동적으로 데이터를 줍니다. - 뜨거운 Observable은 구독하면 구독한 시점부터 Observable이 주는 데이터를 받습니다. - 능동적으로 데이터를 줍니다. ​ ● 뜨거운 Observable ​ 기본적으로 ​ConnectableObservable이 있습니다. ​ 우선 ​publish()를 통해 Observable을 ConnectableObservable로 변환시켜줘야 합니다. ↓ 구독자가 subscribe()를 해도 ConnectableObservable이 connect()​를 하지않으면 데이터를 전달되지 않습니다. ↓ connect()이후에 구독자는 데이터를 전달받고 conne..
RxJava - Scheduler Scheduler를 통해 Thread를 효율적으로 관리할 수 있습니다. ​ observeOn()과 subscribeOn()을 통해 Scheduler를 설정할 수 있습니다. ​ ●Scheduler 종류 ​ Immediate Scheduler: Main Thread에서 실행됩니다. //2.x 버전에서는 사라졌습니다. 예) Observable.subscribeOn(Schedulers.immediate()) - Scheduler의 default값입니다. ​ Trampoline Scheduler: Immediate Scheduler랑 비슷합니다. 차이점은 Immediate는 현재 작업을 하고 있어도 주어진 작업을 즉시 실행하는 반면 Trampoline은 현재 작업이 끝나면 주어진 작업을 실행합니다. 예) Obse..
RxJava 기초 우선 app모듈의 build.gradle에 라이브러리를 추가합니다. ​ implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation 'io.reactivex.rxjava2:rxjava:2.x.x' ​ https://github.com/ReactiveX/RxAndroid 최신버전은 여기서 볼 수 있습니다. ​ ​ rxjava는 보통 람다식​과 함께 사용합니다. 람다식을 쓰려면 다음과 같이 설정해줘야 합니다. ​ 람다식을 쓰면, 을 로 표현할 수 있습니다. 매개변수 -> 리턴값으로 이해하면 됩니다. ​ ​ ​ Observable.map(s -> MainActivity.someThing(s)) 를 Observable.map(MainActivity:..