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でアクセスをしているあなたのユーザーのすべてのインターネット接続を盗もうとは思わない。

このコードは接続を確認するのに適していると思います。

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ライブラリを使用することです。

于 2013-01-24T19:37:32.170 に答える