1

アプリでApplicationクラスを拡張しました。そのクラスには、接続の変更を待機するBroadcastReceiverがあります。機内モードに切り替えると、接続が失われたことを即座に認識してブロードキャストが受信されますが、データ接続が失われた場合(つまり、地下にいるなど)、インターネットに関連していない場合でも、起動するのに数秒から数分かかりますタスクは正常に完了しています(ブラウザでブラウジングしようとしても)。インターネット接続が最初に失われたときを知るためのより正確な方法はありますか?

4

1 に答える 1

1

インターネット接続が失われたことを確認する方法は、ネットワークエラーの適切な例外チェックを行うことです。

ネットワーク例外がスローされた場合(ソケットタイムアウト、I / Oエラーなど)、アプリケーションの状態を切断に設定できます。もちろん、これは、ネットワークを介してデータを積極的に送受信しようとしている場合にのみ機能します。

接続通知が非常に重要な場合は、リモートサーバーを使用して定期的なチェックを行うことができます(たとえば、Googleサーバーにpingを実行します)が、ネットワークに頻繁に触れると無線が起動し、電力が消費される傾向があるため、バッテリーが消耗します。

于 2012-09-08T09:49:20.113 に答える