Before 2022/Android
Event Bus
Eljoe
2019. 5. 20. 12:12
implementation 'com.squareup:otto:1.3.8'
/** * Event Bus Class * 같은 데이터를 사용하는 두 개 이상의 화면이 있는 경우 * 한 화면에서 데이터 변경 시 이벤트를 던지며, * 수신받은 화면에서 이벤트를 받아 작업을 처리하는 클래스 */ object BusProvider : Bus(){ override fun register(`object`: Any?) { super.register(`object`) } override fun unregister(`object`: Any?) { super.unregister(`object`) } }
// 이벤트 송, 수신 시 사용할 객체 data class Event( val result_code: String )
이벤트를 송신하는 화면
// 해당 로직에서 같은 데이터를 사용하는 다른 화면으로 이벤트 객체를 던진다. BusProvider.post(Event("00"))
이벤트를 수신하는 화면
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) BusProvider.register(this) ... } //이벤트 수신 시 진행할 작업을 등록한다. @Subscribe fun finishLoad(event: Event) { if (event.result_code == "00") toDoMethod() } override fun onDestroy() { // 이벤트 해제 BusProvider.unregister(this) super.onDestroy() }