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

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

3 ответа

Решение

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

public static boolean isNetworkConnected(Context c) {
      ConnectivityManager conManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo netInfo = conManager.getActiveNetworkInfo();
      return ( netInfo != null && netInfo.isConnected() );
}

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

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

Другие вопросы по тегам