안드로이드/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:.. 이전 1 다음