rx creating operators, observeon, subscribeon
TRANSCRIPT
Creating Operators 정경호��moltak
Creating Operators observeOn/subscribeOn
Practice
초심으로�돌아가서…
화내지�말아주세요�ㅠ_ㅠ
Creating Operators• Create
• Defer
• Empty/Never/Throw
• From
• Interval
• Just
• Range
• Repeat
• Start
• Timer
https://github.com/gdgand/android-rxjava/tree/master/2016-06-22_operators_creating
observeOn, subscribeOn
Observable�이�동작할�Scheduler�를�지정
해당�Observable�을�observe(관찰)�할�옵저버의��Scheduler를�지정http://reactivex.io/documentation/operators/observeon.html
http://reactivex.io/documentation/operators/subscribeon.html
map 1 --> main subscribe --> main
observeOn
observeOn
map 1 --> main subscribe --> RxIoScheduler-2
observeOn
observeOn
map 1 --> main map 2 --> main subscribe --> RxIoScheduler-2
observeOn
observeOn
observeOn
map 1 --> main map 2 --> RxIoScheduler-2 subscribe --> RxIoScheduler-2
observeOn
• ObserveOn�
• Observer�(operator�혹은�subscriber)�의�observe(관찰,�혹은�동작)�스레드�지정�
• observeOn�이�호출�된�후�‘다시’�호출되기�전까지�유지됨.
observeOn
동작되는�스레드를�아시겠나요?
observeOn
map 1 --> main map 2 --> RxIoScheduler-2
map 3 --> RxNewThreadScheduler-3 subscribe --> RxNewThreadScheduler-3
observeOn
동작되는�스레드를�아시겠나요?
subscribeOnmap 1 --> main subscribe --> main
subscribeOn
subscribeOn
map 1 --> RxIoScheduler-2 subscribe --> RxIoScheduler-2
subscribeOn
무슨�의미일까…?
subscribeOn
subscribeOn
observable --> RxIoScheduler-2 map 1 --> RxIoScheduler-2
subscribe --> RxIoScheduler-2
subscribeOn
observable --> RxIoScheduler-2 map 1 --> RxNewThreadScheduler-1
subscribe --> RxComputationScheduler-3
• subscribeOn�
• Observable�의�데이터�emit�의�스레드를�지정.�
• 여러번�subscribeOn을�하더라도�최초에�호출한�스레드를�유지함.
subscribeOn
“끝”�
• http://goo.gl/ztz2as
• http://docs.couchbase.com/developer/java-2.0/observables.html
• http://reactivex.io/documentation/operators.html#creating
• https://github.com/ReactiveX/RxJava/wiki/Creating-Observables
• http://reactivex.io/documentation/contract.html
• http://reactivex.io/documentation/observable.html
• http://tomstechnicalblog.blogspot.kr/2016/02/rxjava-understanding-observeon-and.html
• http://reactivex.io/documentation/operators/observeon.html
• http://reactivex.io/documentation/operators/subscribeon.html
• https://github.com/square/retrofit/blob/d04f3a50e41ca01d22f370ac4f332f6ddf4ba9fe/retrofit-adapters/rxjava/src/main/java/retrofit2/adapter/rxjava/RxJavaCallAdapterFactory.java