您的位置:首页 > 移动开发 > Android开发

PingUtil in Android

2016-03-17 19:31 267 查看
Ping a host in Android:
“ping -c 1 127.0.0.1”
-c 1: The ping times.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

boolean flag = false;
Runtime run = Runtime.getRuntime();
Process proc = null;
try {
proc = run.exec("ping -c 1 127.0.0.1");
int result = proc.waitFor();
if (result == 0) {
flag = true;
} else {
flag = false;
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
proc.destroy();
}

Ping codes is simple, but:
1, you must run it in background thread since Process.waitfor() will blocks current thread.
2, And you should control the the execution time for Process.waitfor().

The solutions of above 2 issues could be:
1, AsyncTask to run Process.waitfor() in background;
2, Handler.sendEmptyMessageDelayed() to send a delayed message which cancel the AsyncTask if the background codes running too long time.

Codes in Github.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: