import java.util.hashmap;
import java.util.iterator;
import java.util.map;
import java.util.map.entry;
import org.jsoup.jsoup;
import org.jsoup.nodes.document;
import android.os.bundle;
import android.os.handler;
import android.os.message;
import android.app.activity;
import android.view.menu;
import android.view.view;
import android.widget.button;
import android.widget.textview;
public class mainactivity extends activity {
private myhandler handler;
private map urlmap;
private map idmap;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
// final map urlmap = new hashmap();
urlmap = new hashmap();
urlmap.put(tv_q, http://xw.qq.com/);
urlmap.put(tv_taobao, http://m.taobao.com/);
urlmap.put(tv_baidu, http://m.baidu.com/);
urlmap.put(tv_sina, http://sina.cn/);
urlmap.put(tv_google, http://www.google.com.hk/);
urlmap.put(tv_apple, http://www.apple.com/);
idmap = new hashmap();
idmap.put(tv_q, r.id.tv_q);
idmap.put(tv_taobao, r.id.tv_taobao);
idmap.put(tv_baidu, r.id.tv_baidu);
idmap.put(tv_sina, r.id.tv_sina);
idmap.put(tv_google, r.id.tv_google);
idmap.put(tv_apple, r.id.tv_apple);
button button = (button) findviewbyid(r.id.button1);
handler = new myhandler();
// 设置监听
button.setonclicklistener(new button.onclicklistener() {
@override
public void onclick(view v) {
// todo auto-generated method stub
iterator it = urlmap.entryset()
.iterator();
while (it.hasnext()) {
string speed = 正在检测..;
entry e = it.next();
string id = e.getkey();
string url = e.getvalue();
textview tv = (textview) mainactivity.this
.findviewbyid(idmap.get(id));
tv.settext(speed);
}
new mythread().start();
}
});
}
class myhandler extends handler {
@override
public void handlemessage(message msg) {
super.handlemessage(msg);
textview tv = (textview) findviewbyid(msg.what);
tv.settext(msg.getdata().getstring(speed));
}
}
class mythread extends thread {
@override
public void run() {
iterator it = urlmap.entryset().iterator();
while (it.hasnext()) {
string speed = 访问失败;
entry e = it.next();
string id = e.getkey();
string url = e.getvalue();
long time = 0;
string result = ;
try {
long start = system.currenttimemillis();
document doc = jsoup.connect(url).get();
long end = system.currenttimemillis();
time = end - start;
result = doc.body().html();
} catch (exception ex) {
ex.printstacktrace();
}
if (result.length() > 0) {
long len = result.getbytes().length;
speed = speed(time, len);
}
message message = new message();
bundle bundle = new bundle();
bundle.putstring(speed, speed);
message.setdata(bundle);
message.what = idmap.get(id);
handler.sendmessage(message);
}
}
}
@override
public boolean oncreateoptionsmenu(menu menu) {
getmenuinflater().inflate(r.menu.main, menu);
return true;
}
private string speed(long time, long len) {
string speed = ;
if (time > 0) {
long s = len * 1000 / time; // b/ms
speed = s + b/s;
if (s > 1024) {
s = s / 1024;
speed = s + kb/s;
}
if (s > 1024) {
s = s / 1024;
speed = s + mb/s;
}
if (s > 1024) {
s = s / 1024;
speed = s + gb/s;
}
string size = len + b;
if (len > 1024) {
len = len / 1024;
size = len + kb;
}
if (len > 1024) {
len = len / 1024;
size = len + mb;
}
string t = time + ms;
if (time > 1000) {
time = time / 1000;
t = time + sec;
if (time > 60) {
time = time / 60;
t = time + min;
}
}
speed = speed + ( + size + , + t + );
}
return speed;
}
}