2011-05-10 2 views
0

특정 intervan에서 locationManager의 위치 업데이트를 요청하고 minDistance를 무시할 수있는 방법이 있습니까? 가끔 시간의 절반에, 때로는 그 위치가 몇 분에 업데이트됩니다 나타납니다 android locationManager requestLocationUpdates

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3600 * 1000, 1, this) 

그러나 로그에

을 시도했습니다 ... 이것은 고정 된 간격으로 위치를 업데이트하고 거리를 무시하도록 할 수 있습니까?

+0

minDistance (세 번째 매개 변수)를 0으로 설정 했습니까? –

+0

예, 0과 -1을 시도했지만 동일한 결과가 나타납니다 ... –

답변

1

이 스키마를 사용할 수 있습니다. 언제든지 호출 할 새 Runnable을 만듭니다.

private final Handler _handler = new Handler(); 
private static int DATA_INTERVAL = 60 * 1000; 

private final Runnable getData = new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     getDataFrame(); 
    } 
}; 
private void getDataFrame() 
{ 
    requestGPS(); 
    Timer time = new Timer(); 
    time.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       _locationManager.removeUpdates(_connector); 
       this.cancel(); 
      } 
     }, 5000, 5000); 
    _handler.postDelayed(getData, DATA_INTERVAL); 
} 
private void requestGPS() 
{ 
    _locationManager.requestLocationUpdates(
    LocationManager.GPS_PROVIDER, 
       0, 
       0, 
       _connector); 
} 
+0

사용자 위치를 가져 오려는 원격 서비스에이 코드를 사용할 수 있습니까? – noloman

+2

아니요, 안드로이드에서 루퍼를 호출하지 않은 스레드 내부에서 핸들러를 생성 할 수 없다는 예외가 계속 발생하면서 서비스 양식을 작성할 수 없습니다. – noloman