2013-08-05 57 views
3

我正在嘗試檢查不是活動的類中的Internet連接。檢查從外部類的Android連接/獲取系統服務

我用下面的代碼:

public boolean isNetworkAvailable() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = cm.getActiveNetworkInfo();   
    if (networkInfo != null && networkInfo.isConnected()) { 
     return true; 
    } 
    return false; 
} 

,但下面的代碼行被紅色下劃線:

getSystemService(Context.CONNECTIVITY_SERVICE) 

我假設,這是因爲它不能得到systemService。我如何獲得系統服務?

回答

5

Activity你是在傳遞Context前derrived

public boolean isNetworkAvailable(Context c) { 
ConnectivityManager cm = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE); 

所以如果從Activity使用這樣的事情來通過ActivityContext

boolean hasConnection = isNetworkAvailable(this); 

顯然在創建封閉類的實例之後

0

context.getSystemService(Context.CONNECTIVITY_SERVICE)使用該活動從上下文這就是爲什麼你可以使用getSystemService一個活動,而不必背景下,