我偶尔会在连接管理器中看到空指针异常。从意图服务,我通过 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 块中。谢谢。