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에 전달하고 싶은데 구조를 어떻게 짜야할지 잘 몰라서 여기에 질문 남깁니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력