백그라운드에서 작동하고 위치 업데이트를 서버에 보내야하는 앱을 만들고 있습니다.서비스가 위치 업데이트를 중지합니다.
코드는 매우 간단하며 정상적으로 작동합니다. 15 초마다 서버에 업데이트를 보내고 LocationListener 인터페이스를 구현하는 타이머가있는 서비스가 있습니다. 실제로
@Override
public void onCreate() {
super.onCreate();
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER , 5000, 10.0f, this);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER , 5000, 10.0f, this);
//Ping Task sends updates to the Server
Ping_Timer.scheduleAtFixedRate(new Ping_Task(), 5000, Ping_Task.TIME_GET_JOBS*1000);
}
내가 내 코드 몇 가지 문제가 있습니다
나는 여기에 내가 클래스를 설정하는 방법입니다, 모든 코드를 제공하는 것이 유용 할 것 같아요. 백그라운드에서 서비스를 다시 시작할 수있는 GCM 시스템이 서비스에 있음에도 불구하고 서비스는 백그라운드에서 작동해야합니다.
이러한 보호 기능을 사용하더라도 서비스가 아직 실행 중인지 확실하지 않은 경우에도 여전히 문제가 발생하며 때로는 앱이 위치를 더 이상 업데이트하지 않는 경우가 있습니다. Google지도 앱에서는 위치가 정확한지 확인할 수 있지만 내 앱에는 표시되지 않습니다. 어떻게하면 좋을까요? 왜 'onLocationChanged'이벤트를 더 이상 얻지 못합니까?
도움 주셔서 감사합니다.
서비스입니다. – nickik
내 대답이 업데이트되었습니다. 확인 해봐. – slhddn
왜 나는 android.os.Message를 지나칠까요? LocationListener 내에서 직접하는 일을 할 수 있습니다. – nickik