Невозможно сделать статическую ссылку на нестатический метод 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