以下代码在没有interenet连接时崩溃:
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;
}我如何才能防止这种情况发生?
发布于 2012-03-28 21:08:34
在执行你的方法之前检查连接,就像这样:
public boolean isNetworkConnected() {
final ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo();
return activeNetwork != null && activeNetwork.getState() == NetworkInfo.State.CONNECTED;
}发布于 2012-03-28 21:11:43
你检查过方法中myurl和params的值是什么吗?
可能是url.openStream()出现故障并导致NullPointerException。
做一些类似的事情也很有帮助:
Log.w("DHA", "EXCEPTIE URL:" + e.toString());然后,您将看到异常是什么,而不是必须猜测。
发布于 2012-03-28 21:24:47
检查所有Internet连接
Wifi For的
public boolean isWifi(Context context){
try{
WifiManager wifi=(WifiManager)
context.getSystemService(Context.WIFI_SERVICE);
if(wifi.isWifiEnabled()){
return true;
}else{
return false;
}
}
catch(Exception e){
e.getMessage();
return false;
}
}用于其他网络的
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;
}
} 如果它们中的任何一个存在,则进程WS否则显示alert.And,千万不要忘记提及
<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"/>https://stackoverflow.com/questions/9908137
复制相似问题