Android 没有internet连接时崩溃
没有interenet连接时,以下代码崩溃:Android 没有internet连接时崩溃,android,connection,Android,Connection,没有interenet连接时,以下代码崩溃: public String gourl(String myurl,String params) { URL url; String rasp = ""; try { url = new URL(myurl + params); BufferedReader rd = new BufferedReader(new InputStreamReade
public String gourl(String myurl,String params) {
URL url;
String rasp = "";
try {
url = new URL(myurl + params);
BufferedReader rd = new BufferedReader(new InputStreamReader(
url.openStream()));
String line = "";
while ((line = rd.readLine()) != null) {
rasp=rasp + line;
}
return rasp;
} catch (Exception e) {
Log.w("DHA", "EXCEPTIE URL");
}
return null;
}
如何防止这种情况发生?在执行方法之前检查连接,类似于:
public boolean isNetworkConnected() {
final ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo();
return activeNetwork != null && activeNetwork.getState() == NetworkInfo.State.CONNECTED;
}
您是否检查了方法中myurl和params的值 可能是url.openStream失败并导致NullPointerException 这样做也很有帮助,比如:
Log.w("DHA", "EXCEPTIE URL:" + e.toString());
然后您将看到异常情况,而不必猜测。检查所有Internet连接 无线上网 对于其他网络 如果其中任何一个存在,则处理WS-else显示警报。并且永远不要忘记提及
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
当我写信时,你同时接受了我的回答如果我两次调用它,应用程序就会崩溃,我会使用这种方法——从来没有遇到过问题。检查权限和权限。请出示logcat。
public boolean isOline(Context context){
try{
ConnectivityManager cm=(ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm==null)
return false;
NetworkInfo info=cm.getActiveNetworkInfo();
if(info==null)
return false;
return info.isConnectedOrConnecting();
}
catch(Exception e){
e.getMessage();
return false;
}
}
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>