2012-09-17 85 views
0

我已經研究了大部分問題,但沒有找到可行的解決方案。如何在Android中處理互聯網連接問題

我正在設計一個高度使用互聯網連接的應用程序。我永久需要從Web服務請求/接收信息。

我試過sourounding使用互聯網的所有代碼

try 
    { 
     //use of internet here 
    } 
    catch (Exception e) 
    { 
      //Alert dialog that states internet connection is down 
    } 

但這似乎並沒有工作。由於某種原因,這裏沒有捕捉到這個例外。

我試過解決方法,我在這裏找到的解決方案。用途:

public static boolean isOnline(Context context) { 
    ConnectivityManager cm =(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
    if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
     return true; 
    } 
    return false; 
} 

,並用它喜歡:

 if (Utilities.IsOnline(context)) 
     { 
      //Code that uses internet 
     } 

如果連接丟失後右IsOnline檢查,會發生什麼? 我該如何治療這種情況? 謝謝!

+0

請考慮您的網絡連接如何影響應用程序的電池壽命。如果您正在大量使用網絡,值得一看ARO工具,它會告訴您是否正確緩存數據,這可能會對應用程序的性能產生很大影響http://developer.att.com/ARO –

回答

1

檢查您的isOnline檢查之後互聯網是否關閉的唯一方法是註冊監聽網絡連接更改的BroadcastReceiver。在this answer中有一個完整的代碼示例。

我建議,如果你還沒有這樣做,在AsyncTask中運行你的代碼,這樣它可以運行自己的循環(或一系列語句)並檢查每個循環/迭代/計算的連接狀態,並停止if斷開。