사용자로부터받은 보고서 중 하나를 조사 할 때 절전 모드가 활성화되어 있으면 (Nexus 4, Android 5.1.1) 얼마 후에 다운로드 데이터가 연결 예외가되는 것으로 나타났습니다 . 이것은 장치 화면이 꺼져있을 때 발생하며 화면을 켠 상태에서 테스트하지 않았습니다. 있다절전 모드의 네트워크 연결
는 PowerManager.PARTIAL_WAKE_LOCK과 작업 중에 WifiManager.WIFI_MODE_FULL 모두를 누르고 있습니다. 나는 연결을 위해 OkHttp를 사용하고 있으며 Wifi는 항상 켜져 있습니다.
그런 상황에서 두 가지 잠금 (wifi 및 partial_wake)을 모두 보유한 경우 외에 어떤 조치를 취할 수 있습니까? 사용자가 이러한 연결을 작동시키는 것이 중요합니다.
스택 트레이스는 - 그것은 여기 정말 관련이없는하지만 내 생각 :
W/System.err: java.util.concurrent.ExecutionException: java.net.ConnectException: Failed to connect to *************
W/System.err: at java.util.concurrent.FutureTask.report(FutureTask.java:93)
W/System.err: at java.util.concurrent.FutureTask.get(FutureTask.java:177)
....
W/System.err: Caused by: java.net.ConnectException: Failed to connect to **************
W/System.err: at okhttp3.internal.io.RealConnection.connectSocket(RealConnection.java:139)
W/System.err: at okhttp3.internal.io.RealConnection.connect(RealConnection.java:108)
W/System.err: at okhttp3.internal.http.StreamAllocation.findConnection(StreamAllocation.java:188)
W/System.err: at okhttp3.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:127)
W/System.err: at okhttp3.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
W/System.err: at okhttp3.internal.http.HttpEngine.connect(HttpEngine.java:289)
W/System.err: at okhttp3.internal.http.HttpEngine.sendRequest(HttpEngine.java:241)
W/System.err: at okhttp3.RealCall.getResponse(RealCall.java:240)
W/System.err: at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:198)
W/System.err: at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:160)
W/System.err: at okhttp3.RealCall.execute(RealCall.java:57)
...
편집 :이 와이파이 및 모바일 데이터를 모두 연결을 발생합니다. 또한 깨우기 잠금이 유지되고 있으며 연결이 불가능하다는 사실을 제외하고는 모든 것이 정상적으로 작동하는 것으로 확인되었습니다. 화면이 켜지면 모든 것이 정상적으로 작동하지만 화면을 켜놓는 것은 용인 할만한 해결책이 아닙니다.
감사를 모두 지원 모듈을 남길 수 있습니다. 사실 내 서비스가 전경 서비스라고 언급하는 것을 잊었습니다. 전경 상태가 올바르게 처리되는지 살펴볼 것입니다. – mhenryk
나는 당신의 대답을 올바른 것으로 표시하고있다. 문제는 더 자세하지만 사실상 전경 서비스는 여기에서 사용해야하는 모든 것이다. 문제는 내 서비스가 일부 시간 동안 포 그라운드에서 멈춘 것입니다 (다른 작업을 수행하는 동안 두 번째 또는 두 번째). 그런 다음 전경 상태로 돌아 왔습니다. Android에서 내 앱의 네트워크 액세스를 중지하기에 충분했습니다. – mhenryk