2011-02-17 109 views
3

交換我使用下面的函數來檢查網絡連接,但應用程序崩潰時,無線狀態被換Android應用程序崩潰的

public static boolean isNetworkAvailable(Context context) { 
    ConnectivityManager connec = (ConnectivityManager) context 
    .getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = connec.getActiveNetworkInfo(); 

    if (netInfo != null && netInfo.isConnected() == true) { 
     return true; 
    } 
    return false; 
} 
+1

你能提供你的錯誤? – WarrenFaith 2011-02-17 12:59:10

+0

發佈堆棧跟蹤。如果您沒有連接到網絡,NetworkInfo會拋出一個異常(您沒有捕捉到),這似乎是合理的。 – 2011-02-17 13:03:34

+0

如果在您的應用處於執行網絡操作的過程中WiFi狀態發生更改,您的應用會崩潰嗎?或者,如果WiFi狀態發生變化,您*然後*運行您的應用程序,它會崩潰嗎? – 2011-02-17 13:11:27

回答

1

是否缺少一個NullPointerException?

我用下面的方法:

public boolean isOnline() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    try { 
     return cm.getActiveNetworkInfo().isConnectedOrConnecting(); 
    } catch(NullPointerException n) { 
     return false; 
    } 
}