2013-01-20 82 views
0

我已經使用下面的代碼來檢測用戶是否在應用程序的啓動屏幕上連接到Internet,但是我需要在用戶處於特定活動時檢測到此情況。想象一下,您正在使用turn-by-turn導航,並且您依賴於互聯網連接,所以當它發生時您必須檢測到互聯網連接斷開。每當應用程序運行時檢測到斷開的Internet連接

我該如何做到這一點,而不會減慢無限循環的應用程序?

private boolean isOnline(Context context) { 
    try { 
     ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 

     NetworkInfo networkInfo = cm.getActiveNetworkInfo(); 

     return (networkInfo != null && networkInfo.isConnected()); 
    } catch (Exception exc) { 
     return false; 
    } 
} 
+3

我想你忘記了密碼;) – F21

+1

漂亮的代碼,但如果它是BTW:爲$ –

+0

可能重複[如何檢查Android上的互聯網接入? InetAddress從來沒有超時](http://stackoverflow.com/questions/1560788/how-to-check-internet-access-on-android-inetaddress-never-timeouts) –

回答

0

您應該使用BroadcastReceiver做到這樣:

這裏有一些引用此你可以得到更好的主意,這個用例。

Reference 1

Reference 2

Reference 3

感謝,

+0

這正是我需要的。謝謝。 –

+0

@JulianoNunesSilvaOliveira你隨時歡迎。 –

相關問題