14

我有这个功能哪个网络连接

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) 进行静态引用

我不想每次都创建类的对象。

4

3 回答 3

35

添加非静态依赖项作为参数:

public static boolean isNetworkConnected(Context c) {
      ConnectivityManager conManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo netInfo = conManager.getActiveNetworkInfo();
      return ( netInfo != null && netInfo.isConnected() );
}
于 2013-08-01T11:22:45.250 回答
4

getSystemServiceContext类的非静态方法,因此为了访问它,您需要类 Context 中的一个对象。通常,您从 Activty 内部调用它,其中this也是Context. 为了修复,您可以将 Context 传递给您的方法isNetworkConnected

于 2013-08-01T11:22:42.183 回答
0

现在我们可以使用静态函数getContext()来获取继承自的上下文Cocos2dxActivity.java

于 2016-08-19T09:36:21.967 回答