Cannot make a static reference to the non-static m

2020-05-23 08:43发布

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 .

3条回答
叼着烟拽天下
2楼-- · 2020-05-23 09:15

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

查看更多
成全新的幸福
3楼-- · 2020-05-23 09:31

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

查看更多
ゆ 、 Hurt°
4楼-- · 2020-05-23 09:33

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() );
}
查看更多
登录 后发表回答