반응형
1. EventBus란?
기존의 Intent와 Serializable의 사용으로 화면전환시 데이터를 같이 심어 전송하는 방법 대신 화면전환을 하지 않고 데이터만 전송하여 여러 다른 엑티비티 혹은 프레그먼트, 변수에 데이터를 뿌려주는 방식으로 실시간 데이터 수발신을 만듬
2. 의존성 추가
implementation 'org.greenrobot:eventbus:3.2.0'
3. 데이터 캐리어 선언
일반적으로 데이터를 담아놓는 그릇으로 생각하면됨, 보통 MainActivity에서 데이터를 수발신 업데이트함
public class MessageEvent {
public final String message;
public MessageEvent(String message) {
this.message = message;
}
}
4. 이벤트를 수시로 업데이트하며 수신
타 엑티비티 혹은 프래그먼트에서 데이터를 실시간으로 받아 업데이트 한다
// This method will be called when a MessageEvent is posted (in the UI thread for Toast)
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {
Toast.makeText(getActivity(), event.message, Toast.LENGTH_SHORT).show();
}
// This method will be called when a SomeOtherEvent is posted
@Subscribe
public void handleSomethingElse(SomeOtherEvent event) {
doSomethingWith(event);
}
5. Activity가 백그라운드로 연결됐을 때
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}
6. 데이터 전송
데이터 전송할 때 사용
EventBus.getDefault().post(new MessageEvent("Hello everyone!"));
데이터를 받길 원하는 곳에 사용
EventBus.getDefault().register(this);
Reference
https://intrepidgeeks.com/tutorial/eventbus-usage-summary
반응형
'Android > Android Java' 카테고리의 다른 글
[Android Java] System.arraycopy (0) | 2023.10.27 |
---|---|
[Android Java] URL 유무 및 추출 (0) | 2023.10.27 |
[Android Java] 문자열 공백 제거 trim(), replace() (0) | 2023.10.26 |
[Android Java] emoji 유무 check (0) | 2023.10.26 |
[Android Java] 입출력 BufferedWriter BufferedReader (0) | 2023.10.26 |