2012-02-24 57 views
3

要檢測網絡是否連接不是我使用下面的代碼:如何知道互聯網連接是否存在?

   public boolean netConnect(Context ctx) 
      { 

       ConnectivityManager cm; 
       NetworkInfo info = null; 
       try 
       { 
        cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); 
        info = cm.getActiveNetworkInfo(); 
       } 
       catch (Exception e) 
       { 

        e.printStackTrace(); 
       } 
       if (info != null) 
       { 
        return true; 

       } 
       else 
       { 
        return false; 
       } 
      } 

這是工作完全正常。

但我想知道當應用程序正在從服務器下載某些文件(我的意思是說在過程之間)時,互聯網連接是否關閉,無論如何檢測並顯示互聯網連接丟失或弱?

+0

你可以從這裏走refence: http://stackoverflow.com/questions/4238921/android-detect-whether-there-is-an-internet-connection-available/4239019#4239019 – 2012-02-24 11:20:34

回答

4

您必須在所有Activities中使用BroadcastReceiver。我最終最終爲此寫了一個超級班。

現在,每當我寫一個App我不延長Activity,我總是擴展了我創建一個虛擬類說MyActivity。這樣,只要需求發生變化,我只更改MyActivity,我的所有課程都會更新。

爲您的特定情況下,我寫了一個超類,請訪問:https://github.com/sfarooq/A-droid-lib/ 看在networkConnectedActivity類。無論連接何時丟失,它都會顯示一個對話框,並在連接恢復時解除連接。要使用它只需在您想要的Activities中延伸ConnectedActivity。要在整個應用程序中使用它,我建議按照上面提到的製作自己的超類,並將其擴展爲ConnectedActivity,以便稍後可以更改內容(如果稍後要添加自定義對話框和菜單,也很有幫助,您只需要將它添加到你的超類)。

2

有特殊的系統操作,通知應用程序有關更改互聯網訪問狀態。爲了得到它,你需要創建BroadcastReceiver。 有關更多信息,請參閱this問題。

相關問題