본문 바로가기

정보기술, IT/IT source

EventBus 스레드 모드 종류

EventBus 스레드 모드에 대해

EventBus는 스레드 간의 상호 작용을 할 수 있습니다. 
이 경우 이벤트를 잡을 메소드 를 스레드 모드에서 설명합니다.

기본적으로 동일한 스레드에서 이벤트를 알립니다. ↓처럼 onEvent 메소드 에 씁니다. 

public  void onEvent (MessageEvent event) {
        log (event.message);
    }


UI 스레드에 이벤트를 통지하고 싶을 경우 ↓처럼 onEventMainThread 메소드 에 씁니다.

public  void onEventMainThread (MessageEvent event) {
        textField.setText (event.message);
    }


onEventBackgroundThread 메소드 를 사용하면 UI 스레드 이외로부터 통지 한 경우 직접 통지 원본과 동일한 스레드에 통지하고, UI 스레드에서 통지 한 경우 EventBus에서 하나의 스레드를 사용 EventBus 이벤트를 순차적으로 통지 할 것입니다. 
다른 이벤트 통지를 지연하지 않도록이 메소드 는 즉시 종료해야합니다.

public  void onEventBackgroundThread (MessageEvent event) {
        saveToDisk (event.message);
    }


위 onEventBackgroundThread 방법 은 시간이 걸리는 처리에 향하지 않기 때문에 네트워크 액세스 등 시간이 걸리는 처리는 항상 다른 스레드에 알릴 때 onEventAsync 메소드 를 사용하면 좋을 것입니다.

public  void onEventAsync (MessageEvent event) {
        backend.send (event.message);
    }