インスタンスメソッド
applicationDidEnterBackground(_:)
アプリが現在バックグラウンドにあることをデリゲートに通知します。
宣言
optional func applicationDidEnterBackground(_ application: UIApplication)
パラメータ
application
あなたの単独のアプリオブジェクト。
議論
重要
scenes を使用している場合 (Scenes (Scenes) を参照)、UIKit はこのメソッドを呼び出しません。代わりに sceneDidEnterBackground(_:) (sceneDidEnterBackground(_:)) を使用して、全ての最終的なタスクを実行します。UIKit は、アプリがシーンを使用しているかどうかに関係なく、 didEnterBackgroundNotification を投稿します。
このメソッドを使用して、共有リソースを解放し、タイマーを無効にし、アプリが後で終了した場合に備えてあなたのアプリを現在の状態に復元するのに十分なアプリ状態情報を保存します。アプリのユーザインターフェースへの更新を無効にし、一部の型の共有システムリソース (ユーザの連絡先データベースなど) の使用を避けます。バックグラウンドで OpenGL ES を使用しないでください。
applicationDidEnterBackground(_:) からできるだけ早く戻ります。このメソッドの実装には、タスクを実行して戻るのに約 5 秒かかります。時間がなくなる前にメソッドが戻らない場合、あなたのアプリは終了し、メモリから削除されます。
全ての最終的なタスクを実行するために追加の時間が必要な場合は、 beginBackgroundTask(expirationHandler:) (beginBackgroundTask(expirationHandler:)) を呼び出してシステムから追加の実行時間を要求します。beginBackgroundTask(expirationHandler:) をできるだけ早く呼び出します。システムは要求を処理するのに時間がかかるため、そのタスクの断言が許可される前にシステムがあなたのアプリを一時停止する可能性があります。たとえば、applicationDidEnterBackground(_:) メソッドの最後で beginBackgroundTask(expirationHandler:) を呼び出さないでください。また、あなたのアプリが引き続き実行されることを期待してください。
applicationDidEnterBackground(_:) が終了する前に、ユーザインターフェイスの調整に関連するタスクを実行して下さい。必要に応じて、他のタスク (状態の保存など) を同時ディスパッチキューまたは二次スレッドに移動します。applicationDidEnterBackground(_:) で開始する全てのバックグラウンドタスクは、そのメソッドが終了するまで実行されないため、これらのタスクを開始する前に、追加のバックグラウンド実行時間を要求してください。つまり、最初に beginBackgroundTask(expirationHandler:) を呼び出してから、その後 ディスパッチキューまたは二次スレッドでタスクを実行して下さい。
UIKit はまた、このメソッドを呼び出すのとほぼ同時に、didEnterBackgroundNotification を投稿して、関心のあるオブジェクトに、移行に応答する機会を与えます。
バックグラウンドに適切に移行する方法、およびバックグラウンドタスクを開始する方法の詳細については、iOS用アプリプログラミングガイド (App Programming Guide for iOS) を参照してください。
以下も見よ
アプリのライフサイクルイベントへの対応
func applicationDidBecomeActive(UIApplication)
アプリがアクティブになったことをデリゲートに通知します。
func applicationWillResignActive(UIApplication)
アプリがアクティブでなくなりそうであることをデリゲートに通知します。
func applicationWillEnterForeground(UIApplication)
アプリがフォアグラウンドに入ろうとしていることをデリゲートに通知します。
func applicationWillTerminate(UIApplication)
アプリが終了しようとしているときにデリゲートに通知します。
class let didBecomeActiveNotification: NSNotification.Name
アプリがアクティブになったときに投稿する通知。
class let didEnterBackgroundNotification: NSNotification.Name
アプリがバックグラウンドに入ったときに投稿する通知。
class let willEnterForegroundNotification: NSNotification.Name
アプリがアクティブなアプリになる途中でバックグラウンド状態を離れる直前に投稿する通知。
class let willResignActiveNotification: NSNotification.Name
アプリがアクティブでなくなり、フォーカスを失ったときに投稿する通知。
class let willTerminateNotification: NSNotification.Name
アプリが終了しようとしているときに投稿する通知。