2013-08-01 126 views
11

我有这个功能,网络连接无法从类型使静态参考非静态方法getSystemService(字符串)

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

但当IA试图使其静态,这样我可以用它每一项活动是抛出:

无法从类型使静态参考非静态方法 getSystemService(字符串)

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

回答

25

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

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

感谢您的帮助 – Developer

2

getSystemServiceContext类的非静态方法,所以为了访问它,你需要从Context.Typically你从哪里Activty this也是Context对象内部调用它的类的对象。为了解决你可以上下文传递给你的方法isNetworkConnected

+0

仍然不清楚 –

+0

@marthajames究竟哪部分“将上下文传递给你的方法”尚不清楚? – Blackbelt

0

现在我们可以使用静态函数getContext()获得从Cocos2dxActivity.java

继承上下文
+1

请提供一个使用它的例子 –

相关问题