2014-05-23 3 views
0

내 응용 프로그램에 LocationListener를 구현하는 두 개의 다른 클래스가 있습니다. 그 중 하나는 사용자의 현재 위치를 얻는 데 필요한만큼만 사용되고 다른 하나는 사용자의 속도에 대한 데이터를 유지하기 위해 백그라운드에서 지속적으로 실행됩니다.두 개의 다른 LocationListener의 원인 문제를 사용할 수 있습니까?

내 테스트 장치에서는 문제가 발생하지 않습니다. 그러나 다른 사람들은 테스트를 통해 장치를 "잠그십시오"라고 말했지만 위치를 얻으려고 할 때 장치가 "실제로 잠자리에 들었다"는 사실을 알지 못합니다.

GPS가 약한 휴대 전화 일 수도 있고 두 개의 다른 스레드가 GPS를 통해 위치를 얻으려고 할 때 발생하는 이상한 하드웨어 문제 일 수 있습니까? 그렇다면이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 감사.

답변

1

Google Play 서비스의 일부인 새로운 fused provider을 사용하시기 바랍니다. 나는 두 세트를 설정하지 않을 것이다 LocationListeners. 계속해서 사용자의 위치를 ​​추적 할 것이므로 새로운 LocationClient을 사용하여 getLastLocation()을 사용하여 기기가 가지고있는 가장 최근에 가장 저장된 캐시 된 위치를 검색 할 수 있습니다.이 위치는 이미 검색중인 지속적인 업데이트 중 하나 일 가능성이 큽니다. 융합 된 제공자는 어느 것이 가장 좋은 위치에 있는지를 결정할 것이며, 당신은 그 논리에 대해 걱정할 필요가 없습니다.

+0

그래,이게 내가해야 할 일처럼 보일거야. 나는 그것을 피하려고 노력했다. (코드는 원래 저조한 디자인이었고, 시간 소모적 인/논리를 병합하는 작업 이었지만) 장기적으로는 더 나을 것이다. –

+0

그래, 아마도가는 것이 가장 좋은 방법 일 것이다. – Emmanuel

관련 문제