【发布时间】:2014-01-27 14:06:24
【问题描述】:
我想问一下:
我的 AppHelper 类中有以下方法可以检查互联网连接的可用性。
public boolean checkInternetConnection(Context ctx) {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// test for connection
if (cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isAvailable()
&& cm.getActiveNetworkInfo().isConnected()) {
return true;
} else {
Log.i(GlobalApplication.APP_LOG_NAMESPACE, "Internet Connection Not Present");
return false;
}
}
我正在尝试使用以下方法获取布尔值:
// check internet connection and availability
Boolean isConnectionAvailable = appHelper.checkInternetConnection(getBaseContext());
但不幸的是,我总是得到空指针异常。是否与传递的应用程序上下文有关?我应该如何解决这个问题?
感谢您的任何建议。
【问题讨论】:
-
getBaseContext()几乎总是使用错误的上下文。但是请务必从 logcat 发布完整的堆栈跟踪,并显示您初始化appHelper的位置。 -
如前所述,也是标准问题:你的清单中有
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />吗? -
(不能与上下文有关,因为您没有将传入的上下文用于任何事情。)
-
你甚至没有说你在哪一行有空指针异常。这是你必须要看的第一件事。我想知道人们如何在不阅读日志或使用调试工具的情况下进行编程......
-
@Jiri 在粘贴时一定错过了这一点。我打赌应该是
ctx.getSystemService。
标签: java android nullpointerexception helper