Проблема, которую вы пытаетесь избежать, - это ожидание, пока ваше http-соединение определит, что URL-адрес, к которому вы пытаетесь получить доступ, действительно недоступен. Для этого вам необходимо прекратить использовать url.openStream (), который является ярлыком для openConnection (). GetInputStream (), и получить более точный контроль над вашим соединением.
URLConnection conn = url.openConnection();
conn.setConnectTimeout(timeoutMs);
conn.setReadTimeout(timeoutMs);
in = conn.getInputStream();
Этот код позволит вам тайм-аут попытки соединения, если либо соединение, либо чтение превышает время, указанное вами в параметре timeoutMs.