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

Я не хочу каждый раз создавать объект класса.


person Developer    schedule 01.08.2013    source источник


Ответы (3)


Добавьте нестатические зависимости в качестве параметров:

public static boolean isNetworkConnected(Context c) {
      ConnectivityManager conManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo netInfo = conManager.getActiveNetworkInfo();
      return ( netInfo != null && netInfo.isConnected() );
}
person S.D.    schedule 01.08.2013
comment
что такое нестатические зависимости (что должно быть передано в качестве аргумента) - person jasinth premkumar; 15.07.2018

getSystemService — это нестатический метод класса Context, поэтому для доступа к нему вам нужен объект из класса Context. Обычно вы вызываете его из действия, где this также является объектом Context. Чтобы исправить, вы можете передать контекст своему методу isNetworkConnected

person Blackbelt    schedule 01.08.2013
comment
@marthajames, какая именно часть передачи контекста вашему методу не ясна? - person Blackbelt; 07.05.2016

теперь мы можем использовать статическую функцию getContext() для получения контекста, который наследуется от Cocos2dxActivity.java

person user2297461    schedule 19.08.2016
comment
Пожалуйста, приведите пример его использования - person Gilad Green; 19.08.2016