2

大量の写真を Web サーバーにアップロードするアプリケーションを作成しました。これは、操作キュー内で複数の AFNetworking の AFHTPRequestOperation を使用して、html 呼び出しを繰り返すことによって行われます。現在、ユーザーがアプリケーションを終了すると、キューが停止します。ただし、完了するまでアップロードキューを続行し、その後、アプリケーションを通常どおりスリープ状態にしたいと考えています。

私は、iOS が "beginBackgroundTaskWithExpirationHandler" を使用してバックグラウンド有効期限ハンドラーを提供していることを知っています。また、AFNetworking のすべての HTTP 操作クラスのスーパークラスである AFURLConnectionOperation を使用して、それを使用できることも知っています。

- (void)setShouldExecuteAsBackgroundTaskWithExpirationHandler:(void (^)(void))handler

しかし、操作キューでこれを機能させる方法はありますか? 10枚の写真をアップロードしたい場合、各操作の有効期限ハンドラーを設定すると適切に機能しますか?

AFNetworking のバックグラウンド タスクに関するコメント、または私と同じ問題を経験した人がいる場合は、コメントをいただければ幸いです。

4

1 に答える 1

4

アプリがバックグラウンドに移行すると、OS はアプリを完全に停止するか、アプリの動作を完了するまでしばらく時間を与えるかを決定します。アプリを停止する必要がある場合は、有効期限ハンドラーが呼び出されます。それが発生した場合は、すべてのタスクをできるだけ早く中断し、アプリを完全に終了する準備をする必要があります。これは、非常に短い時間 (最大 5 秒) 後に発生するためです。ここを見てください。

于 2012-11-28T19:42:16.930 に答える