기기 위치를 수동 모드로 기록하기 위해 간단한 Android GPS 추적 서비스 앱을 만들었습니다. CPU를 계속 사용하려면 잠자기를 사용해야하지만 신뢰할 수는 없습니다. 때때로 앱이 3 시간 동안 실행됩니다. 때로는 전체 24 시간주기를 수행 할 수 있습니다. 나는 화면에 충돌 보고서를 얻지 못한다. 앱은 아무런 표시없이 멈춘다. 배터리 수명이 좋습니다.Wakelock이 항상 내 앱을 계속 유지하지 못하는 경우
나는 변수 주요 활동 클래스
static WakeLock wakeLock;
으로 가동 잠금을 선언하고 바로 GPS 서비스
PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock((PowerManager.PARTIAL_WAKE_LOCK),"MyAppNameWakelock");
wakeLock.setReferenceCounted(true);
wakeLock.acquire();
화면 변경 이유
나는 또한 BACK 버튼 기능에 대한 업데이트를 시작하기 전에 한 번 가동 잠금을 설정 정상 작동 대신 moveTaskToBack(true);
을 실행하십시오. 이것과 관련이있을 수 있습니까?
전원 코드 또는 USB 코드 연결과 같이 사용중인 wockockock을 제거 할 수있는 기계적인 상호 작용이 있습니까?
그런데 내 앱이 중지 된 이유를 확인할 수있는 Android의 모든 로그가 있습니까?
"전원 코드 나 USB 코드를 연결하는 것과 같은 사용중인 wakelock을 제거 할 수있는 기계적인 상호 작용이 있습니까?" -- 아니. "내 앱이 왜 멈췄습니까?" - Android가 프로세스를 중단했기 때문에 가능성이 큽니다. 프로세스는 영원히 살지 않습니다. – CommonsWare