C#으로 보자면, 사용자 임의 이벤트를 발생(EventHandler 이용), 수신하는 방법이라고 생각하면 된다.
* build.gradle 에 다음을 추가
implementation 'com.squareup:otto:1.3.8'
1. 클래스 생성
- 다음의 클래스를 생성한다.
public final class LocalEventBus {
private static final Bus BUS = new Bus(ThreadEnforcer.ANY);
public static Bus getInstance()
{
return BUS;
}
private LocalEventBus()
{
}
}
2. listen 할 클래스에 이벤트 연결
- onCreate 등에서 register 코드 추가 (마찬가지로, 더이상 사용치 않을때는 unregister를 호출해야함)
LocalEventBus.getInstance().register(this);
3. listen 할 함수 생성
- @Subscribe를 이용.
@Subscribe
public void TestFunc(인자값)
{
...
}
4. 이벤트 발생
- 아무곳에서나 이벤트 발생시킬수 있다. 심지어 이벤트 수신 클래스에서 이벤트 발생 - 자체수신도 된다.
LocalEventBus.getInstance().post(인자값);
'Android' 카테고리의 다른 글
Interface를 통한 Activity-Fragment간 통신 (0) | 2022.06.08 |
---|---|
Fragment 및 Activity (Intent) 기초 (0) | 2022.06.08 |
기기 이벤트 수신 (windowinfotracker, consumer이용) (0) | 2022.06.07 |
OnCreate 중복호출 방지 및 ViewModel (0) | 2022.06.02 |
Inflate 설명 (0) | 2022.05.24 |