私はHEADの使用が効果的かどうか、またはシステムに落としてpingを実行しようとするとコメントできません。しかし、私はどちらもあなたがしなければならない解決策だとは思わない。 IMHO、あなたの接続をポーリングする必要はありません。接続が切断される可能性のある状況がたくさんあります。ポーリングは問題を軽減する手段として多くのものを提供するとは考えていません。また、ユーザは悩まされるかもしれない。私は、アプリケーションを使用していて何か他のことをやっていて、突然私が注意を払っていなかったアプリケーションから「サードパーティーのエラーに接続が失われました」ということを知っています。私は非常に迷惑になるだろう。
アプリケーションが接続に依存している場合は、例外ハンドラでこれを処理することが公正だと思います。私はあなたがネットワークアクションを試み、あなたが接続を確立することができないときは、使用しているAPIが何らかの例外をスローすることを賭けて喜んでいます。だから、私は何だろうことは、あなたがネットワークアクションを初期化しているものは何でもクラスであり、私はこのパラダイムをたどる:
try {
performNetworkAction();
} catch (NoConnectionFoundException e) {
// handle the situation here
}
あなたのアプリケーションは、接続が失われた時にどれだけ反応するように、決定することができないはずネットワークアクションを試みても接続が見つからない場合
言われている - あなたはまだ私と同意見ではないかもしれません。その場合は、使用しているサービスのAPIに、許可されている/推奨されているポーリングの頻度が記録されている可能性があります。また、第三者からのリソースが静的である場合は、それを何度も何度も繰り返すのではなく、キャッシュする必要があります。
「サードパーティのウェブサイト」とは、自分が所有しているサイトか、ランダムなサイトですか?そういった人のサイトにpingをしないでください。それは[トラブル](http://en.wikipedia.org/wiki/NTP_server_misuse_and_abuse)を引き起こす可能性があります。 –