我有这个功能哪个网络连接
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)
我不想每次都创建该类的对象。
答案 0 :(得分:29)
将非静态依赖项添加为参数:
public static boolean isNetworkConnected(Context c) {
ConnectivityManager conManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conManager.getActiveNetworkInfo();
return ( netInfo != null && netInfo.isConnected() );
}
答案 1 :(得分:2)
getSystemService
是Context
类的非静态方法,因此为了访问它,您需要一个Context类中的对象。通常在Activity中调用它{{1} }也是this
的对象。为了解决问题,您可以将Context传递给方法Context
答案 2 :(得分:0)
现在我们可以使用静态函数getContext()
来获取从Cocos2dxActivity.java
继承的上下文