Невозможно сделать статическую ссылку на нестатический метод getSystemService (String) из типа
У меня есть эта функция, сетевое подключение
public boolean isNetworkConnected() {
ConnectivityManager conManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conManager.getActiveNetworkInfo();
if (netInfo == null) {
// There are no active networks.
return false;
} else {
return true;
}
}
Но когда я пытаюсь сделать его статическим, чтобы я мог использовать его во всех действиях, которые он бросает:
Невозможно сделать статическую ссылку на нестатический метод getSystemService (String) из типа
Я не хочу каждый раз создавать объект класса.
Ответы
Ответ 1
Добавьте нестатические зависимости в качестве параметров:
public static boolean isNetworkConnected(Context c) {
ConnectivityManager conManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conManager.getActiveNetworkInfo();
return ( netInfo != null && netInfo.isConnected() );
}
Ответ 2
getSystemService
- нестационарный метод класса Context
, поэтому для доступа к нему вам нужен объект из класса Context. Обычно вы вызываете его изнутри Activty, где this
также является объектом Context
. Чтобы исправить это, вы можете передать контекст вашему методу isNetworkConnected
Ответ 3
теперь мы можем использовать статическую функцию getContext()
, чтобы получить контекст, который наследует от Cocos2dxActivity.java