2014-01-28 15 views
1

내비게이션 목적으로 2 초마다 위치 (GPS) 업데이트를 수신하는 전경 서비스 (START_STICKY를 사용하여 "OS에 의해 종료 된"측면의 문제가 없음)가 있습니다. 나는 wockelock을 가져 가지 않습니다. 내 질문은 깊은 수면을 피하기 위해 젖꼭지를 가져 가야합니까? 또는 위치 업데이트가 "실행 중"이면 충분합니까?GPS 위치 및 딥 슬립

+0

수신자 또는 수신자를 통한 위치 업데이트? –

+0

@Mr_and_Mrs_D 등록 된 수신자를 통해 – greywolf82

답변

2

Android 코드로 파기 한 후 응답은 다음과 같습니다. 필요하지 않습니다. Android는 onLocationChange가 끝나거나 브로드 캐스트 수신기가 의도를 수신 할 때까지 사용자 (LocationManagerService)의 wakelock을 가져옵니다. 일부 비동기 작업 (인 텐트 서비스 시작, onLocationChange에 일부 코드 게시 등)을 수행하는 경우 자체적으로 부분 웨이크 록을 만들어야합니다.

0

나는 앱에서 똑같이하고있다. (하지만 수신기를 사용하여 내가 추천하는 위치 업데이트를 받는다. 청취자에게 많은 버그 리포트가있다.) 귀하의 방법은이 문제가 있습니다

  1. 어쨌든
  2. 서비스가 결국 잠이됩니다 종료 서비스 - 당신이

올바른 방법은 관찰되지 않았다 와서 궁금해 AlarmManager에 알람을 등록하려면 - 알람이 리시버를 깨울 수 있습니다. onReceive()에서 자물쇠를 관리 할 WakefulIntentService을 시작해야합니다.

은 참조 :

편집 : 2 초 정말 자주입니다. 이것은 배터리를 죽일 것입니다 - 매우 낮은 등급을 기대하십시오 - 또는 간격을 높이십시오.

+0

서비스가 종료 될 수 있지만 끈적 거림이있는 것이 좋습니다. 지금부터 나는 어떤 문제도 보지 못했고 이런 종류의 문제에 대한 어떤보고도받지 못했습니다. 사실 전 별도의 전경 HandlerThread를 사용하고 있으며 Thread.getLooper()와 함께이 스레드를 사용합니다. 위치 수신기를 등록 할 때 사용합니다. – greywolf82