1

私はしばらくの間 Reachability クラスに取り組んでおり、Apple サンプルのものと ddg のものの両方を試しました。Notifier を起動した後、Reachability クラスがデータを送受信し続けるかどうかは疑問です。

さまざまなホストに頻繁に接続するアプリを開発しているので、シングルトンを作成し、必要な到達可能性クラスをアタッチすることにしました。アプリが起動すると、リアカビリティ クラスが開始され、通知機能が開始されます。このシングルトン クラスを移植可能にし、あまり書き直さずに他のアプリに適用できるようにするため、シングルトン アプローチを使用します。このように実装するのが良い考えかどうかはわかりませんが、非常にうまく機能しました。

ただし、アプリを使用した後、デバイスのバッテリーの消耗が大幅に速くなったと報告した人もいれば、データ使用量が増えたと報告した人もいます. 私のアプリはバックグラウンドでデータを送受信しないので、到達可能性に関連しているのではないかと考え始めます。

Instrument を使用してエネルギー使用量のプロファイリングを試みたところ、アプリをアイドル状態にしても、ネットワーク インターフェイス経由で継続的に小さなデータ (平均で数百バイト) が入ってくることがわかりました。ただし、データの送信はほとんどありません。

Reachability では、開始時にデータの使用が必要であることはわかっていますが (DNS の解決など)、notifier の開始後もデータを使用し続けるかどうかはわかりません。誰でもわかりますか?

私は低レベルのプログラミングに精通していません。誰かが到達可能性がどのように機能するかを説明できればうれしいです。

4

1 に答える 1

0

私は到達可能性を使用しており、接続を監視していませんが、コードを参照しましたが、送信 (または受信) し続ける理由がわかりません。

Mac にイーサネット接続している場合は、簡単に確認できます。イーサネット接続の Wi-Fi を介した共有を有効にします。小さなスニッチをインストールすると、起動後 3 時間デモ モードで実行されます。テスト デバイスのデータ接続をオフにして、Wi-Fi 経由で Mac に接続します。

これにより、テスト デバイスが行っているネットワーク アクセスを確認できます。

これが不可能な場合は、シミュレーターでアプリを実行することもできます。これは、ネットワーク側が同じであるため、確認できるはずです。

ネットワーク アクティビティを追跡するツールは他にもたくさんありますが、リトル スニッチが最も使いやすいと思います。

于 2012-09-05T09:13:04.223 に答える