2010-12-06 58 views
1

我有一個應用程序出去到一個網站抓取XML進行處理。這個過程是在一個單獨的線程,並且在3G或WiFi可用時工作正常。我也有代碼在實際運行線程之前檢查信號,因此它不會嘗試沒有連接。網絡訪問權限下降時,如何停止運行進程對話框?

在測試過程中,我走進了一座建築物,它阻擋了所有的信號,因此當我在外面並且發出信號時,啓動了這個過程,但是當我進入信號內部並且我的進度對話框保持運行狀態時,我不得不手動關閉程序讓它恢復。

如果出現這種情況,是否有處理此問題的好方法,而無需用戶手動關閉應用程序?

回答

3

供應超時參數您HttpClient,趕上SocketTimeOutException

HttpParams httpParams=new BasicHttpParams(); 
HttpConnectionParams.setConnectionTimeout(httpParams, 5000); 
HttpConnectionParams.setSoTimeout(httpParams, 5000); 
HttpClient httpClient=new DefaultHttpClient(httpParams); 
try { 
    httpClient.execute(new HttpGet("http://myserver.xml")); 
} 
    catch(SocketTimeoutException ex){ 
     //Perform Timeout i.e. cancle progress dialog 
    } 
    catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

真棒,謝謝! – dalesit 2010-12-06 15:56:47

相關問題