我将设置两个输出。第一个,如果我能够到达ip地址另一个,如果我无法达到它。
TextView server_statusTextView = findViewById(R.id.server_status);
try {
if (InetAddress.getByAddress("1.1.1.1".getBytes()).isReachable(1000)) {
server_statusTextView.setText("online");
} else {
server_statusTextView.setText("offline");
}
} catch (IOException e) {
e.printStackTrace();
}
但是,它不会在TextView中写入任何内容。 我是如何工作的?
答案 0 :(得分:0)
我从未亲自使用InetAddress.getByAddress
API,但是从您的代码和注释中,它看起来像是抛出异常,并且整个if
块没有执行。如果您在逻辑上将该异常等同于离线,那么如果发生异常,您可以将文本设置为offline
:
TextView server_statusTextView = findViewById(R.id.server_status);
try {
if (InetAddress.getByAddress("1.1.1.1".getBytes()).isReachable(1000)) {
server_statusTextView.setText("online");
} else {
server_statusTextView.setText("offline");
}
}
catch (IOException e) {
// if the call to getByAddress fails, then consider the state to be offline
server_statusTextView.setText("offline");
e.printStackTrace();
}