2010-08-13 2 views
1

내 응용 프로그램에서 AsyncTask를 사용하고 있습니다.Android에서 AsyncTask의 중단 된 예외를 처리합니까?

서버가 다운되면 AsyncTask가 중단 된 예외를 throw합니다. 서버가 다운되었는지 여부를 추적하는 방법.

HttpGet httpget = new HttpGet(urls[i]); 

ResponseHandler<String> responseHandler = new BasicResponseHandler(); 

content = httpClient.execute(httpget, responseHandler); 

`

핸드셋 시간 동안 유휴 상태로 유지 될 때이 같은 문제가 발생합니다 다음 키 가드가 잠금을 얻고 내가 WI-FI도 비활성화됩니다한다고 가정

`

. 따라서 키 가드를 활성화하면 응용 프로그램이 포어 그라운드에있는 경우 동일한 예외가 발생합니다.

이 예외를 제거하려면 어떻게해야합니까? 이것에 대한 해결책이 있습니까?

수행 할 수있는 일을 알려주십시오.

감사

선일은

답변

0

기본적으로 모든 URL에 접속하기 전에, 당신은 그런 일을 수행하여 네트워크 가용성을 테스트 할 수 있습니다 :

if (connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isAvailable()) { 
//do your stuff 
} 

을 그리고 당신은 또한 짧은으로 서버에 ping 수 서버가 사용 가능한지 확인하기위한 제한 시간.

+0

그러나 이것은 서버가 아닌 장치의 네트워크 연결을 확인합니다. 다른 방법이있을 수 있습니까? 서버를 핑 (ping)하는 것은 해결책이 아닌 것 같습니다. 이것에 대한 다른 방법이있을 수 있습니까? – sunil

+0

글쎄, 서버에 핑 (ping)하면, 다운 됐는지 알 수있을 것이다. – Sephy

+0

분명히, 우리는 서버가 다운되었음을 알게 될 것입니다. 나는 그것이 적절한 해결책이 아니라는 것을 의미했습니다. 나는 각 웹 서비스에 대해 먼저 서버에 ping을 수행 한 다음 웹 서비스를 호출해야하기 때문에 코드에서 호출 할 웹 서비스 수가 많다. 이것은 완벽한 해결책으로 보이지 않습니다. – sunil

관련 문제