2

リモート データが古い可能性があることをユーザーに警告するために、アプリがフォアグラウンドになるたびに到達可能性チェックを実行したいと考えています。アプリの起動時に 3G または Wi-Fi が適切に初期化されているという事実を信頼できますか? または、「誤検知」を避けるために、到達可能性チェックを遅らせる必要があります。遅らせる必要がある場合、十分な遅延間隔はどれくらいですか?

多分もっと推奨されるアプローチがありますか?

4

2 に答える 2

3

常に最初に接続を試みてください。失敗した場合にのみ、Reachability を使用してオフラインかどうかを判断し、いつ自動的に再試行する必要があるかを判断する必要があります。

接続を試みると、ネットワークを確認できない方法でネットワークが再アクティブ化される場合があります。

ただし、ネットワークがオンラインになったという Reachability の通知をリッスンしてから再試行することは完全に適切です (まだ試行していない場合)。

明確にするために:

  • ネットワークにアクセスすると、到達可能性が利用できないと表示されていてもネットワークが起動する場合があるので、試してみてください。
  • 試行して失敗した後、Reachability はネットワークが利用可能かどうかを教えてくれるはずです。(完全に信頼する必要はありませんがエラー メッセージをカスタマイズするために使用してください。)
  • Reachability は、他の理由でネットワークがウェイクアップしていることを検出するため、Reachability の通知を受け取ったら再試行してください。
  • モバイル ネットワーキングがいかに複雑であるかを見失わず、可能な限り仮定を少なくしてください。
于 2013-03-18T18:10:14.840 に答える
0

「アプリがフォアグラウンドになるたびに到達可能性チェックを実行したい...」

到達可能性チェックviewDidAppearを置きます:

-(void)viewDidAppear:(BOOL)animated {
    // reachability check
}

iOSデベロッパーライブラリでの到達可能性:http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

于 2013-03-18T17:57:15.063 に答える