2017-05-18 11 views
3

Android 서비스에서 웹 서버 (NanoHTTPD)를 실행하고 있습니다.Android : 웹 서버 실행

onStartCommand()는 Service의 재정의 된 메서드에서 값을 반환하므로 "끈적임"이어야합니다.

그러나 서비스가 중지 된 것으로 보이거나 적어도 웹 서버가 응답을 멈 춥니 다. 이것은 주로 화면이 꺼진 상태에서 잠시 동안 기기가 비활성 상태 일 때 발생합니다. 그러나 때로는 겉으로보기에 정상적으로 달릴 때도 있습니다. 서비스의 알림 아이콘이 계속 표시됩니다.

장치가 다른 작업을 수행하지 않고 전원에 연결되어 있습니다.

요청에 응답하도록 웹 서버를 유지하려면 어떻게해야합니까? 아니면 최소한 정전의 빈도를 줄이십시오?

+0

"서비스가 멈춘 것처럼 보일 때"? 잠시 후? 요청을 보낸 후에? 기기가 잠자기 상태가되면? – rupps

+0

질문이 수정되었습니다. 그것은 주로 "절전 모드"에서 응답을 멈추는 것처럼 보이지만 때로는 그렇지 않을 때도 멈 춥니 다. 이제 START_STICKY_COMPATIBILITY 대신 START_STICKY를 android : persistent = "true"로 설정하려고합니다. (이는 불쾌한 깃발처럼 보이지만 장치가 항상 전원에 연결되므로 괜찮습니다.) –

답변

2

가장 좋은 기회가 귀하의 경우 시스템에 의해 살해되지 않은 :

  • 시작에게 서비스를 startForeground
  • 프롬프트 사용자에 의해 "배터리 최적화를 무시"목록에서 응용 프로그램을 포함하는 (당신은 할 수 없습니다 프로그래밍 방식으로 수행) : Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); startActivity(intent);