1

情况:webview 的流。问题:创建一个循环来检查互联网活动。我有这段代码来检查是否有互联网活动,但我需要添加一个循环来检查(即)每 5 秒。最好的方法是什么?

public boolean isOnline() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) {
        try {
            URL url = new URL("http://www.google.com");
            HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
            urlc.setConnectTimeout(3000);
            urlc.connect();

            if (urlc.getResponseCode() == 200) {
                return new Boolean(true);
            }
        } catch (MalformedURLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    return false;
} 
4

1 回答 1

4

您不想每 5 秒窃取一次在 Url 中进行访问的用户的所有 Internet 连接。

我认为这段代码更好地检查连接:

public boolean isNetworkOnline() {
        boolean status=false;
        try{
            ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getNetworkInfo(0);
            if (netInfo != null && netInfo.getState()==NetworkInfo.State.CONNECTED) {
                status= true;
            }else {
                netInfo = cm.getNetworkInfo(1);
                if(netInfo!=null && netInfo.getState()==NetworkInfo.State.CONNECTED)
                    status= true;
            }
        }catch(Exception e){
            e.printStackTrace();  
            return false;
        }
        return status;

        }  

并将其添加到您的 Android 清单中:

android.permission.ACCESS_NETWORK_STATE

如果您只想在有连接的情况下开始下载,您可以创建一个刷新按钮。

一个很酷的方法是使用PulltoRefresh library

于 2013-01-24T19:37:32.170 回答