현재 위치 데이터를 매분 (또는 기타 지정된 시간)받는 애플리케이션을 작성 중이며 서버로 전송합니다.매주 Android 위치 업데이트
내가 알아 차린 문제점은 다음과 같습니다. 전원에 연결된 응용 프로그램을 사용할 때 완벽하게 작동합니다. 정의 된 간격으로 업데이트를 보냅니다. 배터리로 사용할 때 업데이트가 무작위로 전송됩니다.
저는 타이머를 사용하여 업데이트 간격을 지정합니다. 이 타이머는 백그라운드 서비스에서 실행됩니다. 내가 타이머를 업데이 트를 요청하고 위치를받을 때 업데이 트를 제거합니다. 내 코드의 조각 :
private class mainTask extends TimerTask
{
public void run()
{
toastHandler.sendEmptyMessage(0);
}
}
private final Handler toastHandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
date = date.getInstance(); //used to set time of update.
if(!GPSupdating)
{
locationManager.requestLocationUpdates("gps", 0, 0, locationListenerGPS);
GPSupdating = true;
}
}
};
내 위치 수신기 :
LocationListener locationListenerGPS = new LocationListener()
{
public void onLocationChanged(Location updatedLocation)
{
myGPSLocation = updatedLocation;
haveLocationGPS = true;
locationManager.removeUpdates(locationListenerGPS);
GPSupdating = false;
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
가이 제대로 작동되지 않는 이유 어떤 생각을 가지고 있습니까?
백그라운드 ** 서비스 **에서 실행중인 "TIMER"와 동일한 문제가있었습니다 ** 오늘까지 까지 아무런 이유가 없었습니다 ... 그래서 타이머 대신 'Alram Manager'를 사용했습니다. '그리고 그게 완벽하게 – DeltaCap
답해 주셔서 감사합니다. Timer 대신 Alarm Manager를 사용하는 샘플 코드를 보내 주시겠습니까? 그것은 매우 도움이 될 것입니다. –