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); } }