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() }
'Before 2022 > Android' 카테고리의 다른 글
Dialog Full Size 및 화면 하단에 위치 시키기 (0) | 2019.06.17 |
---|---|
USIM 관리 클래스 총정리(유심 체크, 번호 가져오기, 번호 포맷 통일) (0) | 2019.06.17 |
FCM 푸시 구현하기 - 준비 작업 (0) | 2019.04.09 |
퍼미션 체크(권한 허용 요청) 커스텀 리스트 뷰 리팩토링 (0) | 2019.03.15 |
퍼미션 Enum으로 관리하기 (0) | 2019.03.13 |