我正在尝试检查非活动类的互联网连接。
我正在使用以下代码:
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。我如何获得系统服务?
答案 0 :(得分:5)
从您所在的Context
传递Activity
public boolean isNetworkAvailable(Context c) {
ConnectivityManager cm = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
因此,如果来自Activity
的人使用此类内容来传递Activity
的{{1}}
Context
显然在创建了封闭类的实例
之后答案 1 :(得分:0)
使用该活动的context.getSystemService(Context.CONNECTIVITY_SERVICE)
是从上下文派生的,这就是为什么你可以在活动中使用getSystemService
而没有上下文的原因
答案 2 :(得分:0)
使用此:-
CheckInternet checkInternet = new CheckInternet(this);
boolean connection = checkInternet.isNetworkConnected();
并像这样呼叫:-
index.js