서비스 수명을 초과하여 서비스를 유지하려고합니다.안드로이드 서비스의 수명주기가 휴대 전화마다 다릅니다.
활동과 다른 프로세스에서 활동을 시작하는 두 대의 전화 (Samsung Galaxy S6 및 Sony Xperia Z3 Compact)에서 서비스가 표시되고 알림이 표시되면 서비스가 활성 상태 인 동안 앱을 스 와이프하여 제거합니다.
세 번째 전화에서 Huawei Honor 8은 동일한 코드가 서비스를 파괴하고 즉시 예약 된 모든 경보를 취소합니다.
저는 매 10 초마다 알람을 발생 시켰습니다 (Huawei에서 즉시 취소되고 Samsung/Sony에서 작동 함). 또한 백그라운드에서 서비스를 실행하는 동안 LocationListener를 활성화합니다.
또 다른 차이점은 근무중인 전화기의 우선 순위 MAX와 진행중인 알림을 스 와이프하거나 지움으로써 취소 할 수는 없지만 Huawei에서도 가능하다는 것입니다.
배터리 최적화 및 기타 설정을 아무런 차이없이 무시하도록 요청했습니다. 나 또한 화면이 꺼져있는 동안 앱을 죽이지 않는 옵션을 찾으려고 노력했다. Huawei는 한 번에 그렇게하는 것 같다.
활동이 종료되거나 활동이 활발하게 실행되지 않은 상태에서 서비스가 계속 실행되도록하려면이 시나리오를 수행 할 수 있습니다. 메모리가 부족한 경우에는 메모리를 거의 사용하지 않으므로 활동은 진행되지만 서비스는 수행되지 않습니다. 그러나이 설정을 사용하면 서비스가 즉시 삭제됩니다.
가능한 특정 제조 설정을 보면서 코드에서 예측하거나 제어 할 수 없습니까?
이 유형의 문제에서 볼 수있는 유일한 해결책은 서비스가 매우 자주 살아 있는지 확인하고 시스템이 자동으로 활성화되어야 할 때 재시작하는 것입니다. 어쨌든 시스템을 죽이는 시스템).
해결책이 무엇인지 모르겠지만 Play 스토어에서 배포 중이며 수정본을 찾을 수없는 경우 문제가있는 기기를 지원되는 기기 목록에서 제외 할 수 있습니다. – nasch
화웨이는 '화면 꺼짐 상태에서 앱을 죽이지 마라'옵션을 가지고 있지만, 코드로이 값을 설정하는 옵션을 아직 찾지 못했고, 배터리를 사용하면 옵트 마이 제이션이 허용 된 것으로 변경되지 않으므로 아무런 효과가없는 것처럼 보입니다. – Deukalion