마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

클래스간 데이터 전달에 대한 질문입니다!!

0 추천
제가 GPS 수신을 위한 클래스를 만들어서, 그 클래스 안에서

LocaionListener를 통해서 계속 위치 정보를 받아오고 있는데,

이 위치 정보를 받을 때 마다 메인 액티비티에 그 값을 가져오고싶습니다!

 

만드려는 어플이 실시간으로 계속해서 GPS 정보가 필요하기 때문에

메인액티비티에서 그때그때 위치 정보를 받아오는 것이 아니고,

location 클래스에서 onLocationChanged 메소드가 호출되어 위치 정보를 받아올 때 마다

메인 액티비티에서 그 값을 사용하고 싶은건데

 

처음 생각했던 방법은 Intent를 이용해서 onLocationChanged 메소드 안에서

메인 액티비티로 데이터를 전달하려고 했는데,

location이 액티비티 클래스를 상속받고 있기는 하지만 실제로 액티비티가 화면에 존재해서

왔다 갔다 하는것이 아니라서 이 방법으로는 에러가 뜨더라구요!

(putExtra로 데이터를 집어 넣고 startActivity로 메인액티비티에 전달해서 getIntent로 메인에서 받는 방식...)

 

가장 좋은 방법이 없을까요?

그냥 LocationManager를 메인 액티비티에 만들어도 되기는 하나

이렇게 하면 메인에 대한 코드가 너무 복잡해져서 최대한 따로 둘려고하고있거든요ㅠㅠ

고수님들의 도움이 필요합니당!!
익명사용자 님이 2014년 3월 10일 질문

3개의 답변

0 추천
인터페이스 구현하세요^^
  (11,920 포인트) 님이 2014년 3월 11일 답변
인터페이스 구현이라함은 어떤걸 말씀하시는건지 문의드립니다.
location 클래스에다가 인터페이스를 정의 합니다.

예를들면
-location 클래스-

//인터페이스 멤버변수
OnLocationListener  mOnLocationListener;

//생성자
public void 생성자(OnLocationListener listener){
mOnLocationListener = listener;
}

//인터페이스
 public interface OnLocationListener{
        public onLocationListener(int x, int y);
}

//좌표 취득 메소드
onLocationChanged {
mOnLocationListener.onLocationListener(좌표x, 좌표y);
}


-메인 클래스-
메인엑티비티 implements OnLocationListener{

onCreate{
new location(this);자신의 이벤트를 넘겨줍니다.
}


implements 를 하면 오버라이드 메소드가 생성될겁니다.
//오버라이드메소드
onLocationListener(좌표x, 좌표y){

//처리부분구현

}

대충적어봤는데요, 간단히 말하면 이벤트가 발생하면
콜백함수로 원하는곳에 넘겨준다 가 되겠네요^^
0 추천
구글에서 기본으로 제공하는 Bluetooth Chat 소스코드를 보면 대충 감이 잡히지 않을까합니다.

한번 보시고 응용하여 적용해보세요.
인연 (31,880 포인트) 님이 2014년 3월 11일 답변
0 추천
EventBus등을 이용하는 방법은 어떨까요?!
적용 방법등은은 검색하시면 금방 찾찾르 수 있습니다.

 

http://greenrobot.github.io/EventBus/
단짝 (4,980 포인트) 님이 2014년 3월 11일 답변
...