안드로이드 개발 질문/답변
(글 수 45,052)
어플 시작할때 클래스파일 하나에서 위도 경도와 특정 메세지(다른 서버에서)를 일정 간격으로 받아오려고 합니다.
그러니까 어플이 실행되는 도중에 계속 위도 경도 메세지를 받아오는 쓰레드가 돌아가고 있는 거죠.
그리고 어플에서 버튼을 눌리면 받아진 위도 경도를 바로 표시하고 서버에서 업데이트된 메세지가 있으면 어플이 돌아가는 도중 팝업을 띄웁니다.
그런데 올라와있는 현재위치의 위도 경도 얻는 소스를 쓰면 onCreate에서 해야 된다고 에러가 나네요
액티비티가 아닌 클래스에서 위도 경도를 구할 수는 없나요?

마비노기영웅전 프리미어서버 뉴키
-
다음에 직장을 구할 때는 퇴근을 도망이라고 부르지 않는 직업이 좋을 것 같다.
-
2011.03.16 16:18:53
굳이 쓰레드로 하지 않아도...
클래스를 하나 생성 하시고 클래스에는 LocationManager 관련 된 소스들 구현 하시구요
어플 구동 내내 위치 값을 받고 싶으시다면 메인 엑티비티 올라올때 LocationManager 스타트 하시구
앱 종료시 스톱 하시면 되구요...
LocationManager 에 onLocationChanged() 함수에서 위치값이 들어올 때 static 변수에 마지막 좌표 셋팅 하게
하는 식으로 하고 위치 얻고싶은 버튼 리스너에선 그 좌표값으로 팝업 띄우면 될거 같은데요..?
만약에 실시간으로 변하는 위치에 따라 뭔가 처리를 해주고 싶다면 위치값 들어올 때마다 브로드 캐스트를 날려서
리스너에서 현재 엑티비티에 뭔가 액션을 줘도 되구요...
서비스로구현 하셔도 되구요...간단히는 그냥 클래스 만들어서 하시면 편해요...



