1

私はアプリケーション用のココアタッチ静的ライブラリを使用しています。このライブラリには、NSOperationによって一定期間にネットワークリソースをダウンロードし、いくつかのメソッドを提供する機能があります。

IOSアプリケーションがバックグラウンドに入るのは限られていることを知っていました(メインスレッドで5秒、長いタスクに10分など)。したがって、バックグラウンドで入力したライブラリを使用したアプリケーションがあるかどうかを知りたいのですが、マイライブラリの期間ダウンロードタスクは終了または生きていますか?そして、アプリケーションは私のライブラリの機能も正常に使用しましたか?

4

1 に答える 1

0

バックグラウンドに移動することは、アプリを「フリーズドライ」することと考えてください。その時点ですべての状態がフリーズします。アプリがフォアグラウンドに移動すると、アプリは現在やや古い情報を使用して実行を開始します。NSTimersなどは引き続き機能しますが、最後の発砲と次の発砲の間の「ギャップ」は非常に大きくなります。たとえば10分間、フォアグラウンドに移動するとタイマーがすぐに起動します]。

私がやったことは、最後に発砲した時刻のNSDateオブジェクトを保持し、バックグラウンドに移動したことによる大きなギャップを検出できるようにし、適切なアクションを実行することでした。

処理中のWebフェッチなどは、タイムアウトステータスを返すだけであることに注意してください。ただし、フェッチを開始した頃にNSDateを保持している場合は、このケースを検出できます。

于 2012-07-30T12:44:56.857 に答える