我偶尔会在连接管理器中看到空指针异常.从意图服务我通过isOnWIFI(this)检查网络状态.在cm.getActiveNetworkInfo()行发生异常.这很奇怪,因为我在调用之前检查了null.
注意:权限已设置.
注意:权限已设置.
public static boolean isOnWIFI(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); return cm != null //here occurs NullPointerException && cm.getActiveNetworkInfo() != null && ((cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null && cm.getNetworkInfo( ConnectivityManager.TYPE_WIFI).isConnected())); }
有没有想过为什么会这样?我无法调试它,因为它只是偶尔出现错误报告.我看到的唯一解决方案是将其放入try catch块.谢谢.
解决方法
如果没有活动连接,他们只是返回null我认为这是你的问题.
http://developer.android.com/reference/android/net/ConnectivityManager.html #getActiveNetworkInfo()