Android에서 다른 클래스간 데이터 전달

조회수 1564회

Android 환경에서 class 간 데이터를 전달하려고 합니다. 예를 들어 사용자에게 전달되는 UI class와 데이터를 보내는 쪽의 class가 있다고 했을 때 전자를 A라고 하고 후자를 B라고 하겠습니다.

1)

A가 자기 자신을 B의 Observer 혹은 Listener로 등록하여 Event가 발생했을 때 A의 callback 메서드가 실행되어 B가 A로 데이터를 전달하도록 하는 방법

대략 이런 식의 의사 코드입니다.

` class A {

onCreate() {
    b.setObserver(this)
}
sendData(Data data) {
    // Event 발생시 Data 받음
}

}

class B {

A observer;

setObserver(A a) { this.observer = a; }

@Override
onDataRecevied(Data data) {
    observer.sendData(data);
}

}

`

2)

A가 Event를 IntentFilter에 넣어 BroadcastReceiver에 등록해놓고 B로부터 Data가 오길 기다린다. 이건 이해가 쉬울 것 같아서 따로 코드 작성하지 않겠습니다.

둘 사이에는 어떤 차이점이 있고 어느 것이 더 바람직할까요? 1번이 응답 속도가 더 빠르고 2번은 상대적으로 느릴까요? 1번은 observer를 등록/해제하는 Lifecycle을 신경써야 한다든지 class가 많을 때 관리하기가 불편할거 같고 2번은 속도도 그렇고 데이터가 객체인 경우 intent에 실어 전달하려면 Parcelable 등으로 구현해야 하는 단점이 있을 것 같은데

제가 생각하는게 맞나요? 아니면 제가 별 의미없는 질문을 한걸까요?

센서 데이터를 B에서 수신받아서 초당 2번씩 UI레이어에 있는 A에 전달하고 싶은데 구조를 어떻게 짜야할지 잘 몰라서 여기에 질문 남깁니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)