首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当没有互联网连接时崩溃

当没有互联网连接时崩溃
EN

Stack Overflow用户
提问于 2012-03-28 21:05:28
回答 3查看 2K关注 0票数 0

以下代码在没有interenet连接时崩溃:

代码语言:javascript
复制
    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;
}

我如何才能防止这种情况发生?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-28 21:08:34

在执行你的方法之前检查连接,就像这样:

代码语言:javascript
复制
    public boolean isNetworkConnected() {
         final ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
         final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo();
         return activeNetwork != null && activeNetwork.getState() == NetworkInfo.State.CONNECTED;
    }
票数 6
EN

Stack Overflow用户

发布于 2012-03-28 21:11:43

你检查过方法中myurlparams的值是什么吗?

可能是url.openStream()出现故障并导致NullPointerException。

做一些类似的事情也很有帮助:

代码语言:javascript
复制
Log.w("DHA", "EXCEPTIE URL:" + e.toString());

然后,您将看到异常是什么,而不是必须猜测。

票数 1
EN

Stack Overflow用户

发布于 2012-03-28 21:24:47

检查所有Internet连接

Wifi For的

代码语言:javascript
复制
    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;
    }
}

用于其他网络

代码语言:javascript
复制
    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,千万不要忘记提及

代码语言:javascript
复制
    <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"/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9908137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档