-
otto 이벤트버스 사용안드로이드 2016. 1. 20. 01:25
사용하기 위해서는 다음과 같이 라이브러리를 추가해 줍니다.
compile 'com.squareup:otto:1.3.8'
이벤트 버스 데이터 전달을 위한 클래스를 생성합니다.
public class BusEvent { private EventData eventData; public BusEvent(EventData eventData) { this.eventData = eventData; } public EventData getEventData() { return eventData; } }
public class BusProvider { private static final Bus BUS = new Bus(); public static Bus getInstance() { return BUS; } private BusProvider() { // No instances; } }
실제로 사용할 프래그먼트 혹은 액티비티에서 다음과 같이 등록, 해제를 설정합니다.
@Override
public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = getActivity(); // 버스프로바이더 등록 BusProvider.getInstance().register(this); }
@Overridepublic void onDestroy() {
// 버스프로바이더 해제 BusProvider.getInstance().unregister(this); super.onDestroy(); }예를 들어 선택한 날짜 데이터 전달 EventData eventData = new EventData(); eventData.setDate(sdf.format(date)); BusProvider.getInstance().post(new BusEvent(eventData));
위 전달한 데이터를 받는 부분
@Subscribe public void FinishLoad(BusEvent pushEvent) { mSelectedDate = pushEvent.getEventData().getDate();
//해당 데이터로 처리
} }
'안드로이드' 카테고리의 다른 글
구글맵 클러스터 색깔 변경 (0) 2016.02.02 strings.xml 에서 특수문자 사용하기 (0) 2016.01.26 PagerAdapter 에서 뷰 혹은 데이터 갱신하는 법 (0) 2016.01.19 Viewpager 에서 Fragment 사용할 때 탭간 이동하는 경우 돌아왔을때 초기화 방지 (0) 2016.01.18 [안드로이드]프래그먼트(Fragment) 생명주기 (0) 2016.01.15