Вопрос

I have this function which network connection

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;
   }
}

But when i a trying to make it static so that i can use it in every activity it is throwing:

Cannot make a static reference to the non-static method getSystemService(String) from the type

I don't want to create the object of the class every time .

Это было полезно?

Решение

Add the non-static dependencies as parameters:

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

Другие советы

getSystemService is a non static method of the Context class, so in order to access it you need an object from the class Context.Typically you call it from inside an Activty where this is also an object of Context . In order to fix you could pass a Context to your method isNetworkConnected

now we can use static function getContext() to get the context which inherit from Cocos2dxActivity.java

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top