Я не могу комментировать, более эффективно ли использовать HEAD или пытаться сделать что-то вроде сброса в систему и выполнить пинг;но я не думаю, что любое из них - это решение, которое вы должны делать.ИМХО, не нужно опрашивать ваше соединение.Есть много ситуаций, когда соединение может быть разорвано, и я не думаю, что опрос предоставит многое для смягчения проблемы.Кроме того, пользователь может быть раздражен.Я знаю, что если бы я использовал приложение, а затем начал делать что-то еще, и внезапно я получил «потерянное соединение с ошибкой третьей стороны» из приложения, на которое я даже не обратил внимания;Я был бы очень раздражен.
Если ваше приложение зависит от наличия соединения, то я думаю, будет справедливо обработать это с помощью обработчиков исключений.Я готов поспорить, что любой используемый вами API выдает какое-то исключение, когда вы пытаетесь выполнить сетевое действие, и вы не можете установить соединение.Итак, что бы я сделал в любом классе, который вы инициализируете действие сети, я бы следовал этой парадигме:
try {
performNetworkAction();
} catch (NoConnectionFoundException e) {
// handle the situation here
}
Ваше приложение не должно быть в состоянии определить, когда соединение было потеряно, просто какреагировать, когда вы пытаетесь выполнить сетевое действие, и соединение не найдено.
При этом вы все равно можете не согласиться со мной.В этом случае допустимая / рекомендуемая частота опроса может быть задокументирована в API для используемой вами службы.Кроме того, если ресурс стороннего производителя является статическим, вы должны кэшировать его, а не получать его снова и снова.