배경 프로세스를 사용하여 정기적으로 (예 : 매시간) 웹의 콘텐츠 소스에 연결하여 업데이트 된 콘텐츠를 확인하는 Android 코드가 있습니다. 새로운 사용자가 앱을 다운로드하여 처음 실행하면 처음 실행되는 상황에서 서버의 DNS가 이미 기기에 캐시되어 있지 않기 때문에 처음에는 앱을 다운로드하고 실행하는 것처럼 보입니다. 이러한 첫 번째 일련의 연결은 두려운 UnknownHostException으로 실패합니다 : 호스트가 확인되지 않았습니다. 물론 응용 프로그램이 나중에 다시 시도하고 (다시 말하면 "좋아"라고 표시됩니다) 모두 작동합니다. 아마도 OS가 실제로 문제를 해결할 시간이 있었기 때문일 수 있습니다. 주소.Android java.net.UnknownHostException : 호스트가 확인되지 않음 (전략 질문)
내 질문은 다음과 같습니다. (1) 다른 Android 개발자도 배포 된 응용 프로그램에서도이 동작을 볼 수 있습니까? 처음에는 나중에 스스로 해결할 수있는 "호스트 확인되지 않은"일련의 문제가 발생했습니다. 2) 누구나 "DNS 워밍업 (warming up the DNS)"에 대한 최초의 실제 연결이 작동하도록 더 나은 전략을 가지고 있습니까? 아니면이 예외를 만났을 때 다시 백 오프 루핑을 시도하십시오. 기각? 나는 우리 서버에서 작은 텍스트 파일을 가져 오려고 시도하는 별도의 스레드를 가지고 있으며 성공할 때까지 다른 나가는 네트워크 연결을 차단할 때까지 그냥 루프를 돌릴 수 있습니다 (이 부분에 대해서는 확실하지 않음). 어떤 경우
, 나는 여기에 스택 오버플로 다양한 유사하게 표현 된 질문의 덩어리를 읽고 난 그냥<uses-permission android:name="android.permission.INTERNET" />
가 내 매니페스트 파일에 설정되어 있는지 모두를 보장하기 위해 :)
같은 문제가 발생했습니다. 이를 분석하기 위해 패킷을 기본 dns (8.8.8.8)로 보내는 icmp ping을 구현했습니다. 우리가 관찰 한 것은 비록 ip-ping 테스트가 성공적 이었더라도 (따라서 인터넷 연결이 가능함) 우리는 여전히 UnknownHostException을 발견했습니다. 어떤 생각이 이것의 원인 일 수 있습니까? – icyerasor