Appleはバックグラウンドタスクの実行をどのくらいの時間許可していますか? 質問する

Appleはバックグラウンドタスクの実行をどのくらいの時間許可していますか? 質問する

私はデータベースに画像ファイルの配列をアップロードする必要があるので、Appleのバックグラウンド実行ガイドユーザーがアプリを一時停止または終了した場合でも、アプリがデータをアップロードし続けることを確認します。

しかし、説明には、バックグラウンド タスクをgiving it a little extra time to finish its work呼び出すかbeginBackgroundTaskWithName:expirationHandler:、開始するかが記載されています。beginBackgroundTaskWithExpirationHandler:

正確にはどのくらいですかlittle extra time

ベストアンサー1

間違っていたら訂正してください。でも、私は偶然完璧な記事iOS のバックグラウンド処理機能について説明する Xamarin からの資料です。

簡単に言えば、iOS 7 以前と iOS 7 以降の 2 つの部分に分けて説明します。

iOSバージョン7以前

答えは単純に600数秒(10 分)です。理由は上記の記事に記載されています。

iOSバージョン7以降

答えは、時間配分システムが日和見主義的であるということです。@Gary Riches の提案に従う必要があります。

NSLog(@"残り時間: %f", [[UIApplication sharedApplication] backgroundTimeRemaining]); を使って調べてください。これが日和見的である理由は、iOS 7 以降ではバックグラウンド タスクの処理方法が完全に異なり、確実に最適化されているためです。正確に言うと、断続的な動作をするため、大量のデータのダウンロードなどのバックグラウンド タスクが必要な場合は、代わりに `NSURLSession` を使用する方がはるかに効果的です。

ただし、私の特殊なケースでは、正確には 1 つのファイルを含む 1 つのオブジェクトをアップロードしています。NSURLSession少量のデータをアップロードすることを考慮する必要はありません。また、アップロード タスクには、必要なだけ時間がかかることがあります。 :-)

このような訪問者にとってはTL;DR、上記の回答で十分でしょう。詳細については、上記の記事を参照してください。

おすすめ記事