:프로그램 실행은 datagramSocket.receive 방법에 얼어 경우 대기 모드에서 디바이스
try {
byte[] respData = new byte[1024];
DatagramPacket bRespPacket = new DatagramPacket(respData, respData.length);
datagramSocket.setSoTimeout(timeout);
datagramSocket.receive(bRespPacket);
processReceivedData(bRespPacket.getData());
} catch (Exception e){}
장치가가는 경우를 대기 모드 (화면이 꺼지면)는 프로그램이 datagramSocket.receive()에서 멈추고 화면이 잠길 때까지 SocketTimeoutException이 발생하지 않습니다. 화면 잠금이 해제되면 SocketTimeoutException이 성공적으로 throw되고 프로그램 실행이 계속됩니다. 그런 행동의 이유는 무엇입니까?
UPD : 장치 유휴 프로그램 실행이 datagramSocket.receive 메서드에서 멈추고 들어오는 데이터를받지 못하면. WifiLock을 사용해 보았지만 결과는 없었습니다.
UPD 2 : 나는 가동 잠금을 사용하는 경우 모든 잘 작동하지만 난이 화면이 꺼질 경우 구성 요소를 종료하고 안전한 에너지 안드로이드 수있는 좋은 방법
경우에 따라 네트워크 상태 변경을 청취해야하며 사용자가 변경하는 것처럼 보이지 않습니다. –
응답 해 주셔서 감사합니다. 그러나 화면 잠금이 해제되었을 때 실행이 멈추고 계속 진행되는 이유를 여전히 이해할 수 없습니다. – antiw
WifiLock을 사용해 보았지만 결과가 없습니다. – antiw