2017-11-13 14 views
0

5 초마다 위치 업데이트를 웹 서버에 보내야하는 추적 앱이 있습니다. 응용 프로그램이 깨어 있거나 보이는 한이 작동합니다.항상 안드로이드 앱을 깨우십시오.

기기가 잠겨 있으면 앱이 15 분 후에 잠자기 상태가됩니다 (잠깐 기다리거나 잠시 기다리십시오).

배터리 앱 전력 모니터 아래의 "모니터링되지 않는 앱"에 앱을 추가해도 잠자기 상태가되지 않습니다. 나는 가동 잠금을 만드는 시도

, 즉

pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "TrackerTag"); 
wakeLock.acquire(); 

하지만, 심지어는 도움이되지 않습니다

. 앱이 계속 잠자기 상태가되어 업데이트 전송을 중지합니다. 화면을 유지할 필요가 없으므로 (PARTIAL_WAKE_LOCK) 앱을 깨워서 GPS 좌표를 서버 데이터베이스에 제공 할 수 있어야합니다.

배터리 최적화 목록의 앱을 무시 목록에 추가 했으므로 앱을 강제 종료하지 않고 위의 wakelock이 아무 것도하지 않는 것 같습니다.

전경 서비스 (예 : Android - implementing startForeground for a service?)로 서비스를 만들려고 시도했지만 15 분 후에도 잠자기 상태로 저장되지 않습니다.

안드로이드에게 "이 앱을 무엇이든 상관없이 내버려두고 특별히 닫지 않고 죽이지 않으면 멈추지 마라"고 말하면 무엇을해야합니까?

답변

0

내 app을 죽이는 안드로이드를 막을 수있는 모든 가능한 방법을 시도한 끝에 "수정"은 매 3 분마다 주요 활동을 다시 시작하는 것입니다. 앱이 15 분 동안 실행되지 않으므로 Android가이 앱을 종료하는 것을 멈추는 것처럼 보입니다.

이것은 내가 사용하는 실행 파일입니다. 이것을 주 활동에 넣으십시오.

h.postDelayed(new Runnable() { 
    public void run() { 
     runnable = this; 
     recreate(); 
     h.postDelayed(runnable, 3*60*1000); 
    } 
}, 3*60*1000); 

이것은 일시 중지/숨기기시 활동을 다시 시작합니다. 앱이 표시되면 활동이 재개됨에 따라 빠른 깜박임이 발생하지만 내 경우에는 문제가되지 않습니다.

누군가가 나에게 진짜 공식 해결책을 줄 수 없다면 위의 사항이 지금은 도움이 될 것입니다. 내 앱이 실행되어 잠긴 상태로 한 시간 이상 웹 서버를 업데이트했습니다. Perviosuly 그것은 결코 과거 15 분을 얻지 않을 것입니다.