-
RxJava2로 EventBus 구현 하기 (Rxbus)Android/Rx 2020. 3. 20. 14:09반응형
https://github.com/DNights/RxBusSample
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
https://developer88.tistory.com/128
반응형'Android > Rx' 카테고리의 다른 글
SubscribeOn 와 ObserveOn 그리고 Schedulers (0) 2019.10.07 ReactiveX - Subject (0) 2019.09.04