-
RxJava2로 EventBus 구현 하기 (Rxbus)Android/Rx 2020. 3. 20. 14:09반응형
https://github.com/DNights/RxBusSample
DNights/RxBusSample
Contribute to DNights/RxBusSample development by creating an account on GitHub.
github.com
EventBus를 사용중 Dexguard 사용시 문제되는 부분이 있어
Rx 를 이용하여 EventBus 처럼 사용 할 수 있도록 변경하였습니다.
RxBus.kt
import io.reactivex.subjects.PublishSubject import java.util.* object RxBus { val instance = RxBus private val subjectTable = Hashtable<String, PublishSubject<Any>>() fun sendEvent(any: Any, key: String = "RxBus") { subjectTable[key]?.onNext(any) } fun receiveEvent(key : String = "RxBus") : PublishSubject<Any>{ synchronized(this) { if (subjectTable.containsKey(key).not()) { subjectTable[key] = PublishSubject.create() } return subjectTable[key]!! } } }
Event 보낼때
RxBus.instance.sendEvent("send event", "key1")
Event 받을때
RxBus.instance.receiveEvent("key1").subscribe({ Log.d("test", "key1 = $it") },{ it.printStackTrace() })
[참고링크]
https://nittaku.tistory.com/216
12-Rx_EventBus 로 String 과 모델 객체 전달해보기
Rx로 EventBus를 만들기 위한 준비물 깃허브 각종 라이브러리 * RxLifeCycle 사용안하면,, 버스안에 정보가 계속 남아서 곤란하다. compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatib..
nittaku.tistory.com
https://developer88.tistory.com/128
RxJava로 구현하는 EventBus
Event를 하나의 클래스에서 받아서 중개해주는 방식의 EventBus방식은, 바로 연결되어 있지 않아서 Listener를 전달하기 힘들 Activity나 Fragment, Service들 사이에 Event를 전달하기 참 좋은데요. EventBus나..
developer88.tistory.com
반응형'Android > Rx' 카테고리의 다른 글
SubscribeOn 와 ObserveOn 그리고 Schedulers (0) 2019.10.07 ReactiveX - Subject (0) 2019.09.04