WebActivity.java 4.74 KB
package com.sunvote.udptest;

import android.app.Activity;
import android.graphics.Bitmap;
import android.net.http.SslError;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.webkit.ClientCertRequest;
import android.webkit.HttpAuthHandler;
import android.webkit.RenderProcessGoneDetail;
import android.webkit.SslErrorHandler;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;

public class WebActivity extends Activity {

    private WebView webView;
    private Handler handler;
    private TextView msg;
    private String url;
    private int errorCount = 0;
    private int successCount = 0;
    private boolean last = true;
    private String current;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.content_base);
        webView = (WebView) findViewById(R.id.webview);
        msg = (TextView) findViewById(R.id.msg);
        handler = new Handler();
    }

    @Override
    protected void onResume() {
        super.onResume();
        initIp();
        if (url != null) {
            handler.post(runnable);
        }

    }

    public void initIp() {
        File file = new File(Environment.getExternalStorageDirectory().getPath() + "/sunvote/serverip.txt");
        FileReader fileReader = null;
        BufferedReader br = null;
        try {
            fileReader = new FileReader(file);
            br = new BufferedReader(fileReader);
            url = br.readLine();
            url = "http://" + url + ":8080";
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (fileReader != null) {
                try {
                    fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    private Runnable runnable = new Runnable() {
        @Override
        public void run() {
            new Thread() {
                public void run() {
                    try {
                        URL network = new URL(url);
                        URLConnection connection = network.openConnection();
                        connection.setConnectTimeout(10000);
                        connection.setReadTimeout(15000);
                        InputStream is = connection.getInputStream();
                        if (is != null) {
                            byte[] bytes = new byte[1024];
                            while (is.read(bytes) > 0) ;
                        }
                        successCount++;
                        last = true;
                    } catch (Exception e) {
                        e.printStackTrace();
                        errorCount++;
                        if(last) {
                            current = new Date().toString();
                            last = false;
                        }
                    }
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            msg.setText("成功次数:" + successCount + ",失败次数:" + errorCount + "," + current);
                            webView.loadUrl(url);
                        }
                    });
                    handler.postDelayed(runnable, 2000);
                }
            }.start();

        }
    };

    private Runnable error = new Runnable() {
        @Override
        public void run() {
            error();
        }
    };

    private void error() {
        errorCount++;
        handler.post(new Runnable() {
            @Override
            public void run() {
                msg.setText("成功次数:" + successCount + ",失败次数:" + errorCount);
            }
        });
        handler.postDelayed(runnable, 2000);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        handler.removeCallbacks(error);
        handler.removeCallbacks(runnable);
    }
}