0

私のアプリケーションでは、GCD グローバル キューを使用していくつかのタスクを実行しています。通常、アプリケーションはバックグラウンド モードで 10 分間実行されます (GCD は正常に動作し、@perfomselector も動作します)。その後、何も実行されていません。

私の質問は、

  • そのアップルは、アプリケーションがバックグラウンド モードで 10 分間コードを実行することを常に許可していますか?

  • この 10 分後にアプリケーションは (常に) 中断されますか?

  • アプリケーションが中断されているときに変数を設定する方法はありますか?

  • GCD のステータス (中断されているかどうか) を確認する方法はありますか

4

1 に答える 1

2

そのアップルは、アプリケーションがバックグラウンド モードで 10 分間コードを実行することを常に許可していますか?

-> バックグラウンドに移行するアプリは、重要な土壇場のタスクを完了するために追加の時間を要求できます。バックグラウンド実行時間を要求するには、UIApplication クラスの beginBackgroundTaskWithName:expirationHandler: メソッドを呼び出します。アプリ オブジェクトの backgroundTimeRemaining プロパティを使用して、利用可能な時間を確認します。

この 10 分後にアプリケーションは (常に) 中断されますか?

⇒10分などの制限はないと思います。デバイスは、バックグラウンドでタスクを実行するための限られた時間しか与えません。

アプリケーションが中断されているときに変数を設定する方法はありますか?

-> いいえ。アプリがバックグラウンドにあり、コードを実行していない場合。システムはアプリを自動的に一時停止状態に移行し、移行前に通知しません。backgroundTimeRemaining プロパティは、いくつかの bg タスクを実行する残り時間を取得するのに役立つ場合があります。

于 2013-10-01T11:07:46.380 に答える