Я хочу проверить интернет-соединение с определенным веб-сайтом, прежде чем запускать метод в моем onClick. Проведя некоторое исследование, я обнаружил, что эта ссылка, на которую был принят ответ, показала мне, как это сделать Проверка интернет-соединения Android лучше проблема заключается в том, что метод выдает ошибку android os networkonmain threadexception, я провел больше исследований и выяснил, что такоеоперация должна была быть выполнена в асинхронной задаче. Как я могу сделать это и по-прежнему использовать результат в моем методе кнопки onClick.
Это мой текущий код в onCreate
.
@Override
public void onClick(View view) {
if (isInternetAvailable("18.184.67.80", 443, 1000)) {
Method() ;
} else {
Toast.makeText(getApplicationContext)) , "Internet not available" ).show;
}
}
Ниже приведен код для проверки интернет-соединения с сайтом
public boolean isInternetAvailable(String address, int port, int timeoutMs) {
try {
Socket sock = new Socket();
SocketAddress sockaddr = new InetSocketAddress(address, port);
sock.connect(sockaddr, timeoutMs); // This will block no more than timeoutMs
sock.close();
return true;
} catch (IOException e) {
return false;
}
}
Как бы я использовал приведенный выше код в асинхронной задаче и использовал результаты в отношении отсутствия интернет-соединенияили нет в операторе if в методе oncreate?
Ранее я также нашел это Как проверить доступ в Интернет на Android? InetAddress никогда не отключается , но я не понимаю, какой код я бы использовал для получения результатов асинхронной задачи и использования их в oncreate в onClick.