2011-03-09 2 views
0

Android 및 Java 프로그래밍에 처음으로 익숙하며 현재 최고의 GPS 위치가 필요한 애플리케이션을 작성하려고합니다.Android. onLocationChanged가 트리거 될 때 주요 활동 표시 업데이트 (다른 ​​클래스에서)

내 접근 방식은 (인터넷에서 찾은 코드를 기반으로) MyLocation을 만드는 것이 었습니다.이 클래스는 두 개의 수신기 (GPS 및 네트워크)를 설정하고 시간이 끝날 때 가장 좋은 위치를 반환하는 타이머를 가지고 있습니다. . 내 문제는 위치가 내 주요 활동에

@Override 
public void onLocationChanged(Location location) { 
    currentLocation = location; 
    Log.d("GPS Listener - OnLocationChanged", String.valueOf(currentLocation.getLatitude())); 
} 

를 업데이트하기 때 정말 내 주요 활동으로 위치를 반환하는 방법을 모르는 내보기의 새로 고침을 트리거 할 수 있다는 것입니다, 나는 다음 한 ...

//Start Updates 
if(myLocation.startUpdates(GPSTest.this)){ 
    ... 
} 

//Update Position 
public void updatePosition() { 
myTextView1... 
} 

나는 onLocationChanged() 메소드가 MyLocation 클래스에서 트리거 될 때 내 생각이 핸들러를 사용하는 것이었다

내 주요 활동 (GPSTest)에 UpdatePosition() 메서드를 호출 할 수 싶습니다 콜백,하지만 난 정말 아니에요 su 이것을 구현하는 방법. 올바른 접근 방법인가, 그렇다면 구현 방법에 대한 제안. 피드 백에 대한

감사합니다,

마르셀

답변

0

나는 이것이 올바른 방법이라고 생각합니다.

메인 클래스에 핸들러를 만들고 호출시 어떻게 처리해야하는지 정의한 다음 MyLocaion 클래스/객체에 전달해야합니다. onLocationChanged() 메서드에서 핸들러에 메시지를 보내야합니다 (handler.send(msg))

+0

감사합니다. 이것은 내가 어떻게 진행해야할지 모르는 곳입니다. 이 핸들러를 작성한 다음 내 "MyLocation"클래스에서 사용하려면 어떻게해야합니까? – user652341

+0

다음과 같이 처리기를 생성하면됩니다. Handler handle = new Handler() { public void handleMessage (Message msg) { // 원하는대로 } – MByD

+0

고마워, 이제 완벽하게 작동합니다. – user652341

관련 문제