2012-11-25 2 views
4

30 분마다 사용자의 위치를 ​​기록하고지도의 모든 위치를 볼 수있는 응용 프로그램 (교육용)을 만들고 있습니다. 업데이트가 30 분보다 자주 발생하는 것을 원하지는 않지만 그렇습니다.requestLocationUpdates minTime 매개 변수 목적

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30 * 60 * 1000, 0, pe); 

이제, 문서가 분명하게 말한다 : 위치 업데이트 사이

경과 시간이 minTime

보다

그러나 작을 수 없으며

이 내가 requestLocationUpdates를 호출하는 방법입니다 나는 SO에 다르게 (예를 들면 This answer) 진술하는 약간의 응답을 여기에서 보았다.

GPS에서 사용할 수있을 때마다 업데이트가 발생하는 것처럼 보입니다. GPS 아이콘이 절대로 꺼지지 않고 업데이트 속도가 1 업데이트/초보다 커집니다.

  1. minTime 매개 변수조차 힌트 (네, 30 분 업데이트 속도에 대한 힌트가 ... 두 번째 업데이트보다 더 많은 리드)로, 그 목적을 달성하지 않습니다 그래서 여기에 2 가지 질문이 있습니다. 그렇다면 그것은 무엇입니까?
  2. 다른 방법이 있습니까? 배터리가 너무 빨리 소모되므로 GPS를 항상 켜고 싶지 않습니다. 알람을 30 분마다 반복하도록 예약 할 수 있고 requestSingleUpdate으로 전화 할 수 있습니까?

답변

5

minTime 매개 변수는 심지어 힌트 (네, 30 분 업데이트 속도에 대한 힌트가 ... 두 번째 업데이트보다 더 많은 리드)로, 그 목적을 달성하지 않습니다. 그렇다면 그것은 무엇입니까?

Jellybean 이후 기기는 minTime 매개 변수를 준수해야하므로 (지금) 목적이 있습니다.

다른 방법이 있습니까? 배터리가 너무 빨리 소모되므로 GPS를 항상 켜고 싶지 않습니다. 매일 30 분마다 알람을 예약하고 requestSingleUpdate를 호출 할 수 있습니까?

예, 처리기를 사용하여 requestSingleUpdate()으로 30 분마다 하나의 업데이트를 요청하십시오.

내가 전에 previous question에서이 문제를 해결해주었습니다. 그 답변의 코드가 도움이되는지 질문이 있으시면 알려주십시오.

+0

감사합니다. 거기에서 살펴 보겠습니다. 내 응용 프로그램이 업데이트 사이에 죽을 수 있기 때문에 Handler가 옵션이라고 생각하지 않지만 'AlarmManager'를 사용하는 것은 비슷합니다. 내 장치가 2.3.3을 실행하지만 흥미 롭습니다. 나는 첫 번째 질문에 대한 답을 결코 추측하지 않습니다. – Jong

+0

이 경우 AlarmManager가 있습니다. 또한 사용자를 괴롭히지 않으려면 백그라운드 서비스를 사용하여 새 위치를 가져 와서 저장할 수 있습니다. – Sam

+0

감사합니다. 감사합니다. – Jong

1

두 번째 매개 변수 인 최소 거리 차이 (미터)는 0으로 설정되며, 상수 업데이트가 발생합니다. 원하는 기간에 타이머 + 처리기 내의 requestSingleUpdate를 분단 위로 사용하는 것이 좋습니다.