2011-02-24 3 views
2

Differenct 리스너와 함께 LocationManager.NETWORK_PROVIDER 및 LocationManager.GPS_PROVIDER를 구현 한 다음 리스너 locationManager.removeUpdates (locationListener)를 등록 취소하는 것이 좋습니다.LocationManager 최상의 구현?

GPS_PROVIDER는 값을 반환하는 데 많은 시간이 필요하고 때로는 콜백을하지 않기 때문에?

또한 locationManager.getLastKnownLocation (LocationManager.NETWORK_PROVIDER); 콜백이없는 경우 데드락을 피하기 위해 postDelayed를 가진 핸들러에서?

누구로부터 도움?

미리 감사드립니다. 당신이 어떤 교착 상태를 표시해서는 안

BR, J

답변

1

흠 locationManager.getLastKnownLocation AFAIK은 즉시 반환?

자신의 LocationListeners를 정말로 관리해야하는 경우 먼저 Network-One과 두 개의 GPS 수신기를 등록하는 것이 좋습니다. 첫 번째 위치 (거친)를 수신하려면 네트워크 리스너를 사용하십시오. 모든 GPS 업데이트를 수신하도록 하나의 GPS 위치 수신기를 구성하십시오. 위치가 정확하면 관리되는 GPS-Location-Listener로 전환하십시오.이 위치 수신기는 매 x 초 및 x 미터마다 업데이트 만받습니다. 더 많은 예제는 http://developer.android.com/guide/topics/location/obtaining-user-location.html을 참조하십시오.

지도에 위치를 표시하려면 MyLocationOverlay를 사용해보십시오. 그것은 당신을 위해 모든 것을 해줍니다.

+0

. 또한 그것은 때때로 나를 null로 돌려 줬다. 그래서 정말로 옵션이 아닙니다. 두 번째로 나는 아무지도도 또는 다른 목적을 위해 현재 위치를 필요로하지 않았다. 셋째, GPS_PROVIDER는 이상한 종류의 콜 백을 수신하지 않으므로 네트워크에 의존해야합니다. 감사. –

+0

나에게서 마음의 변화. 그것의 정확한 !!! 더 나은 구현이 될 것입니다. 그러나 15 초 동안 응답을 얻지 못하면 지연된 게시자가 필요합니다. 닥쳐. –

0

Google이 마침내이 기능을보다 효과적으로 처리 할 수있는 최신 버전의 위치 수신기를 출시 한 이래로이 질문은 더 이상 유효하지 않은 것이 이상적입니다. 아래 같은 대한 링크 : 네트워크 또는 다시 내가 백업으로 getLastKnown 위치가 있어야 전화를 해 나던 GPS 수신기에 대한 요구 한 경우 내가 의미 교착 상태에 의해 http://developer.android.com/google/play-services/location.html

관련 문제