2014-01-30 1 views
3

매분 GPS 위치 업데이트를 받아야합니다 (배터리 수명은 차량에 장치가 충전됨에 따라 문제가되지 않습니다). 그것은 Google지도와 함께 사용되어 배달 계획 등을위한 여행을 추적하는 차량 추적 응용 프로그램입니다.일관된 GPS 업데이트 - AlarmManager 또는 requestLocationUpdates()?

나는 AlarmManager와 LocationManager.requestLocationUpdates()를 수신기와 함께 사용했습니다. 나중에 약간의 ropey가 보이고 문서화로 진행되는데, 위치를 제공 할 수도 있고하지 않을 수도 있습니다. 그러나 minTime이 1 분으로 설정되고 거리가 0/1인데도 5 분 간격으로 한 번 또는 두 번만 업데이트가 표시됩니다.

private void startGeoLocationSender() 
{  
    LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    LocationListener locationListener = new GeoLocationListener(this); 
    // MINIMUM TIME TO REQUEST , MIN DISTANCE TO REQUEST, LISTENER 
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
      AppSettings.COLLECTOR_PROC_1_MINS, 
      AppSettings.COLLECTOR_DISTANCE_1_M, locationListener);  
} 

그래서 AlarmManager로 돌아가서 수동으로 업데이트를 수행하면됩니다. 아니면 특정 업데이트 시간이 주어지면 100 % 신뢰할 수있는 또 다른 방법이 있습니까? 내 요구 사항에 더 적합한 것은 무엇입니까?

추신. 나는 그 주제에 대한 다른 주제들에 대해서 잘 알고 있지만, 나는 그런 좋은 Vs Evil 트렌드를 보지 못했다. 일부 사람들은 위치 청취자에 의해 맹세하고 다른 사람들은 AlarmManagers 만 맹세합니다.

답변

1

더 나은 방법이 확실하지 않으므로 AlarmManager를 사용하는 것이 좋습니다.

1

LocationListener 만 사용하는 경우 필요한 간격으로 업데이트를받을 수 있는지 확인할 수 없습니다. 정말 최고의 옵션은 LocationManager에 대한 트리거가있는 AlarmManager 또는 Scheluder 서비스라고 생각합니다.

관련 문제