UIApplicationDelegateプロトコル

2013. 05. 11
・準拠
NSObject

・フレームワーク
/System/Library/Frameworks/UIKit.framework

・利用可能
iOS 2.0以降で利用可能

・手引書
iOSアプリケーションプログラミングガイド
LocalおよびPush Notificationプログラミングガイド

・宣言
UIApplication.h
UIStateRestoration.h



●概要

UIApplicationDelegateプロトコルは、シングルトンのUIApplicationオブジェクトのデリゲートによって実装されるメソッドを宣言します。
これらのメソッドは、起動完了時や終了時、メモリの低下、重要な変更の発生など、アプリケーション実行中におけるキーイベントについての情報を提供します。
これらのメソッドを実装すると、システムイベントへ応答し、適切に対応する機会を与えられます。

アプリケーションデリゲートの主な仕事の一つは、実行している間のアプリケーションの状態遷移を追跡することです。
iOS 4.0より前では、アプリケーションはアクティブか非アクティブ、あるいは実行していないのいずれかでした。
iOS 4.0以降では、バックグラウンドでの実行や一時停止にすることもできます。
これらの遷移の全てで、アプリケーションからの応答が正常に実行されていることを保証する必要があります。
例えば、バックグラウンドのアプリケーションはユーザインターフェイスの更新を停止する必要があります。
アプリケーションデリゲートのメソッドを使用して、これらの遷移への応答を提供します。

起動時間はアプリケーションのライフサイクルにおいて特に重要なポイントです。
ユーザがアイコンをタップすることによってアプリケーションを起動することに加えて、特定のイベントタイプに対応するためにアプリケーションを起動することができます。
例えば、入ってくるプッシュ通知に応答して起動することができ、ファイルを開くか尋ねたり、要求されたいくつかのバックグラウンドイベントを処理するために起動することができます。
これらの場合の全てにおいて、オプションの辞書はapplication:didFinishLaunchingWithOptions:メソッドに渡された、起動理由に関する情報を提供します。

アプリケーションが既に実行されている状況では、アプリケーションデリゲートのメソッドはキーの変更に応答して呼び出されます。
このプロトコルのメソッドはオプションですが、ほとんどまたは全て実装されるべきです。

iOS 6以降では、アプリケーションデリゲートはアプリケーションの状態の保存と復元において重要な役割を果たしています。
デリゲートは状態の保存や復元を行うべきかどうかをUIKitに指示します。
またいくつかの場合では、復元中にビューコントローラオブジェクトを提供するため、アプリケーションの最後の機会として働き、ビューコントローラオブジェクトを提供することがあります。

アプリケーションの起動サイクルや、アプリケーションデリゲートのメソッドを使用した状態遷移の詳細については『iOSアプリケーションプログラミングガイド』を参照してください。
UIApplicationシングルトンクラスについての詳細は、『UIApplicationクラス』を参照してください。



●タスク

アプリケーションの状態変更の監視

– application:willFinishLaunchingWithOptions:
– application:didFinishLaunchingWithOptions:
– applicationDidBecomeActive:
– applicationWillResignActive:
– applicationDidEnterBackground:
– applicationWillEnterForeground:
– applicationWillTerminate:
– applicationDidFinishLaunching:

●アプリケーションの状態復元の管理

– application:shouldSaveApplicationState:
– application:shouldRestoreApplicationState:
– application:viewControllerWithRestorationIdentifierPath:coder:
– application:willEncodeRestorableStateWithCoder:
– application:didDecodeRestorableStateWithCoder:

●ストーリーボード用ウィンドウの提供

window    プロパティ

●デフォルトのインターフェイス方向の管理

– application:supportedInterfaceOrientationsForWindow:

●URLリソースを開く

– application:openURL:sourceApplication:annotation:
– application:handleOpenURL:

●ステータスバー変更の管理

– application:willChangeStatusBarOrientation:duration:
– application:didChangeStatusBarOrientation:
– application:willChangeStatusBarFrame:
– application:didChangeStatusBarFrame:

●システム通知への応答

– applicationDidReceiveMemoryWarning:
– applicationSignificantTimeChange:

●リモート通知の処理

– application:didReceiveRemoteNotification:
– application:didRegisterForRemoteNotificationsWithDeviceToken:
– application:didFailToRegisterForRemoteNotificationsWithError:

●ローカル通知の処理

– application:didReceiveLocalNotification:

●コンテンツ保護の変更への応答

– applicationProtectedDataWillBecomeUnavailable:
– applicationProtectedDataDidBecomeAvailable:



●プロパティ



●インスタンスメソッド

・application:didChangeStatusBarFrame:

ステータスバーのフレームが変更された時にデリゲートに伝えます。

- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame

パラメータ
application
デリゲートするアプリケーションオブジェクトを指定します。
oldStatusBarFrame
画面座標中のステータスバーの以前のフレームを指定します。

解説
このメソッドを呼び出した後、関心のあるオブジェクトに変更に対応する機会を与えるために、アプリケーションはUIApplicationDidChangeStatusBarFrameNotification通知を投じます。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h


・application:didChangeStatusBarOrientation:

ステータスバーのインターフェイスの向きが変更されたことをデリゲートに伝えます。

- (void)application:(UIApplication *)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation

パラメータ
application
デリゲートするアプリケーションオブジェクトを指定します。
oldStatusBarOrientation
この定数は、アプリケーションのユーザインターフェイスの以前の向きを示します。
詳細は『Monitoring Application State Changes』を参照してください。

解説
デリゲートは共有しているUIDeviceオブジェクトから、現在のデバイスの向きを取得することができます。

このメソッドを呼び出した後、関心のあるオブジェクトに変更に対応する機会を与えるために、アプリケーションはUIApplicationDidChangeStatusBarOrientationNotification通知を投じます。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h


・application:didFailToRegisterForRemoteNotificationsWithError:

Apple Push Serviceが登録プロセスを完了できなかった時にデリゲートに送信します。

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error

パラメータ
application
リモート通知登録プロセスを開始するアプリケーションを指定します。
error
登録に成功しなかった理由の情報をカプセル化したNSErrorオブジェクトを指定します。
アプリケーションはユーザにこの情報を表示するかを選択することができます。

解説
UIApplicationのregisterForRemoteNotificationTypes:メソッドが呼び出された後、登録プロセスにエラーがあると、デリゲートはこのメッセージを受信します。
アプリケーションでプッシュ通知をどのように実装するかについての詳細は『LocalおよびPush Notificationプログラミングガイド』を参照してください。

利用可能
iOS 3.0以降で利用可能

宣言
UIApplication.h


・application:didFinishLaunchingWithOptions:

起動プロセスがほとんど完了し、アプリの実行準備がほとんどできていることをデリゲートに通知します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

パラメータ
application
デリゲートするアプリケーションオブジェクトを指定します。
launchOptions
(もしあれば)アプリケーションが起動された理由を示す辞書を指定します。
この辞書の内容は、ユーザが直接アプリケーションを起動した状況では空である可能性があります。
この辞書での有効なキーや、それらの処理についての詳細は『Launch Options Keys』を参照してください。

戻り値
アプリケーションがURLリソースを処理できない場合はNO、それ以外の場合はYESを返します。
アプリケーションがリモート通知の結果によって起動された場合、戻り値は無視されます。

解説
アプリケーションの初期化と最終的な微調整を完了するために、このメソッド(と対応するapplication:willFinishLaunchingWithOptions:メソッド)を使用する必要があります。
このメソッドは状態の復元が行われた後に呼び出されますが、アプリケーションのウィンドウと他のUIが表示される前になります。
このメソッドが返された後のある時点で、アクティブ(フォアグラウンド)状態かバックグラウンド状態にアプリケーションを移動するために、システムはアプリケーションデリゲートの他のメソッドを呼び出します。

このメソッドはlaunchOptions辞書の任意のキーを処理する最後の機会を提示します。
application:willFinishLaunchingWithOptions:メソッドでキーを評価しなかった場合、このメソッドで検査して適切な応答を提供する必要があります。

アプリケーションデリゲートではないオブジェクトは、UIApplicationDidFinishLaunchingNotificationという名前の通知を観察し、通知のuserInfo辞書にアクセスすることによって、同じlaunchOptions辞書の値にアクセスすることができます。
その通知は、このメソッドが返った少し後に送信されます。

重要:アプリケーションの初期化には、このメソッドとapplication:willFinishLaunchingWithOptions:メソッドの使用を大いに推奨しており、applicationDidFinishLaunching:メソッドは古いバージョンのiOSで実行するアプリケーションのみを意図しているので使用しないでください。

このメソッドから返される結果はapplication:willFinishLaunchingWithOptions:メソッドから返される結果と組み合わせて、URLを処理しなければならないかどうかを判断します。
いずれかのメソッドでNOが返された場合、URLは処理されません。
メソッドのどちらかを実装していない場合は、実装されたメソッドの戻り値だけで判断されます。

利用可能
iOS 3.0以降で利用可能

宣言
UIApplication.h


・application:didReceiveRemoteNotification:

実行中のアプリケーションがリモート通知を受信したことをデリゲートに伝えます。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

パラメータ
application
リモート通知を受信するアプリケーションを指定します。
userInfo
アプリケーションアイコンに付けるバッジの数字や、警告音、ユーザに表示する警告メッセージ、通知の識別子、カスタムデータなどが潜在的に含まれている、リモート通知に関連した情報を含む辞書を指定します。
プロバイダはiOSがNSDictionaryオブジェクトに変換するJSONで定義された辞書として発信しますが、辞書にはNSNullと共にプロパティリストオブジェクトのみが含まれている場合があります。

解説
アプリケーションが実行されてリモート通知を受信すると、アプリケーションは通知を処理するためにこのメソッドを呼び出します。
このメソッドの実装は、適切な手続きをとるために通知を使用する必要があります。
例えば、待機しているアプリケーションにサーバに接続して待っているデータをダウンロードするための信号として使用することができます。

userInfo辞書には、別の辞書の値であるapsキーが含まれています。
aps辞書の情報を必要とはしないはずですが、以下のキーを使用してその内容を取得することができます。
  • alert:値は警告メッセージの文字列、またはbodyとshow-viewの2つのキーを持つ辞書です。
    bodyキーの値は警告メッセージを含む文字列で、show-viewキーの値はブール値です。
    show-viewキーの値がfalseの場合、アラートのViewボタンは表示されません。
    デフォルトではViewボタンが表示され、ユーザがタップするとアプリケーションが起動します。

  • badge:プロバイダからダウンロードするデータアイテムの量を示す数値です。
    この数値はアプリケーションアイコンの上に表示されます。
    badgeプロパティの欠如は、現在アイコンに付ける数値を削除する必要があることを示しています。

  • sound:警告音として再生するアプリケーションバンドル内のサウンドファイル名です。
    "default"が指定されている場合。デフォルトのサウンドが再生される必要があります。
またuserInfo辞書は、JSONスキーマと一致するプロバイダによって定義されたカスタムデータを持っている場合があります。
カスタムデータのプロパティは、aps辞書と同じレベルで指定する必要があります。
ただしカスタム定義されたプロパティは、通知あたりの厳格なサイズ制限(256バイト)や送付の保証が無いため、大量のデータ転送に使用するべきではありません。

プッシュ通知が到着した時にアプリケーションが実行されない場合、メソッドはアプリケーションを起動し、起動オプションの辞書に適切な情報を提供します。
アプリケーションはプッシュ通知を処理するために、このメソッドを呼び出しません。
代わりに、プッシュ通知のペイロードデータを取得し適切に対応する、application:willFinishLaunchingWithOptions:またはapplication:didFinishLaunchingWithOptions:メソッドを実装する必要があります。

アプリケーションにプッシュ通知を実装する方法についての詳細は、『LocalおよびPush Notificationプログラミングガイド』を参照してください。

利用可能
iOS 3.0以降で利用可能

宣言
UIApplication.h


・application:didRegisterForRemoteNotificationsWithDeviceToken:

アプリケーションがApple Push Service(APS)の登録に成功した時に、デリゲートに伝えます。

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

パラメータ
application
リモート通知の登録プロセスを開始したアプリケーションを指定します。
deviceToken
APSにデバイスを識別するトークンを指定します。
デバイスに通知を送信する時、プロバイダがAPSサーバへ提出する必要がある形式のため、トークンのデータ型は不明瞭です。
APSサーバは、パフォーマンス上の理由からバイナリフォーマットを必要とします。
デバイストークンはUIDeviceのuniqueIdentifierプロパティとは異なり、セキュリティとプライバシー上の理由から、デバイスが消去された時は変える必要があることに注意してください。

解説
UIApplicationのregisterForRemoteNotificationTypes:メソッドが呼び出された後に、登録プロセスにエラーが無い場合、デリゲートはこのメッセージを受け取ります。
デバイストークンを受信した後、アプリケーションはプロバイダと接続し、トークンを与えます。
APSは、このトークンを伴っているアプリケーションのデバイスにのみ通知をプッシュします。
他にも稀な状況、例えばデバイスのバックアップデータではないデータからデバイスを復元した後に、ユーザがアプリケーションを起動した時に、このメソッドが呼び出される可能性があります。
この例外的な場合では、アプリケーションはユーザが起動するまで新しいデバイスのトークンを知ることができません。

アプリケーションにプッシュ通知を実装する方法についての詳細は、『LocalおよびPush Notificationプログラミングガイド』を参照してください。

利用可能
iOS 3.0以降で利用可能

宣言
UIApplication.h


・application:handleOpenURL:

URLで識別されるリソースを開くためにデリゲートに尋ねます。
非推奨。URLリソースを開くにはこのメソッドの代わりにapplication:openURL:sourceApplication:annotation:を使用してください。)

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

パラメータ
application
アプリケーションオブジェクトを指定します。
url
URL(Universal Resource Locator)を表すオブジェクトを指定します。
Appleが登録したURLスキームについては『Apple URL Scheme Reference』を参照してください。

戻り値
デリゲートがリクエストの処理に成功した場合はYES、URLの処理をするための試みが失敗した場合はNOになります。

解説
デリゲートがapplication:openURL:sourceApplication:annotation:メソッドも実装している場合、そのメソッドはこれの代わりに呼び出されます。

このメソッドは、デリゲートがapplication:willFinishLaunchingWithOptions:application:didFinishLaunchingWithOptions:メソッドの両方からNOを返された場合は呼び出されません。
(2つのメソッドの内の一つのみが実装されていた場合、戻り値はこのメソッドが呼び出されたかどうかを決定します。)
アプリケーションがapplication:didFinishLaunchingWithOptions:の代わりにapplicationDidFinishLaunching:メソッドを実装している場合、このメソッドはアプリケーションが初期化された後に指定されたURLを開くために呼び出されます。

アプリケーションが一時停止またはバックグラウンドでの実行中にURLが到着した場合、システムはこのメソッドを呼び出す前にフォアグラウンドにアプリケーションを移動します。

このデリゲーションメソッドのための同等の通知はありません。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h


・application:willChangeStatusBarFrame:

ステータスバーのフレームが変更された時にデリゲートに伝えます。

- (void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame

パラメータ
application
デリゲートするアプリケーションオブジェクトを指定します。
newStatusBarFrame
画面座標系で、変更されたステータスバーのフレームを指定します。

解説
アプリケーションは、setStatusBarOrientation:animated:メッセージを受信してインターフェイスの向きを変更しようとしている時に、このメソッドを呼び出します。

このメソッドを呼び出した後、関心のあるオブジェクトに変更に対応する機会を与えるために、アプリケーションはUIApplicationWillChangeStatusBarFrameNotification通知を投じます。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h


・application:willChangeStatusBarOrientation:duration:

ステータスバーのインターフェイスの向きが変更される時にデリゲートに伝えます。

- (void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration

パラメータ
application
デリゲートするアプリケーションオブジェクトを指定します。
newStatusBarOrientation
アプリケーションのユーザインターフェイスの新しい向きを示す定数です。
詳細は『アプリケーション状態変更の監視』を参照してください。
duration
新しい向きへのアニメーションの継続時間を秒単位で指定します。

解説
デリゲートは通常、新しい向きのウィンドウやビューを準備するために、このメソッドを実装します。
デリゲートは共有しているUIDeviceオブジェクトから、現在のデバイスの向きを取得することができます。

このメソッドを呼び出した後、関心のあるオブジェクトに変更に対応する機会を与えるために、アプリケーションはUIApplicationWillChangeStatusBarOrientationNotification通知を投じます。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h


・applicationDidBecomeActive:

アプリケーションがアクティブになったことをデリゲートに伝えます。

- (void)applicationDidBecomeActive:(UIApplication *)application

パラメータ
application
シングルトンのアプリケーションインスタンスを指定します。

解説
このメソッドはアプリケーションが非アクティブ状態からアクティブ状態に移行したことを知らせるために呼び出されます。
これはユーザまたはシステムによってアプリケーションが起動されたために発生する可能性があります。
また(電話やSMSメッセージの着信などの)送信によりアプリケーションが一時的に非アクティブ状態になる中断をユーザが無視した場合に、アプリケーションはアクティブ状態に戻すことができます。

アプリケーションが非アクティブの期間に一時停止(またはまだ開始されていない)タスクを再起動するために、このメソッドを使用する必要があります。
例えば、タイマーの再起動やOpenGL ESのフレームレートの抑制の解放などに使用することができます。
アプリケーションが以前にバックグラウンドにあった場合、アプリケーションのユーザインターフェイスを再構築するためにも使用することができます。

このメソッドを呼び出した後、関心のあるオブジェクトに変更に対応する機会を与えるために、アプリケーションはUIApplicationDidBecomeActiveNotification通知を投じます。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h


・applicationDidEnterBackground:

アプリケーションがバックグラウンドになっていることをデリゲートに伝えます。

- (void)applicationDidEnterBackground:(UIApplication *)application

パラメータ
application
シングルトンのアプリケーションインスタンスを指定します。

解説
iOS 4.0以降では、バックグラウンドでの実行をサポートするアプリケーションをユーザが終了する時に、applicationWillTerminate:メソッドの代わりにこのメソッドが呼び出されます。
このメソッドを使用する際には共有リソースの解放と、ユーザデータの保存、タイマーの無効化、それとアプリケーションを後で終了した場合に現在の状態を復帰させるために十分な状態情報を格納する必要があります。
また、アプリケーションのユーザインターフェイスの更新を無効にし、(ユーザの『連絡先』データベースなどの)共有しているシステムリソースを使用しているいくつかのタイプは無効にしてください。
更に、バックグラウンドでOpenGL ESの使用を無効にすることも必要です。

このメソッドの実装は、任意のタスクの実行から返すまでに約5秒かかります。
任意の最終的なタスクを実行するために追加の時間が必要な場合は、beginBackgroundTaskWithExpirationHandler:を呼び出すことによって、システムから追加する時間を要求することもできます。
実際には、できるだけ速くapplicationDidEnterBackground:から返す必要があります。
時間が無くなる前にメソッドが戻らなかった場合、アプリケーションは終了し、メモリから消去されます。

このメソッドが終了する前にユーザインターフェイスの調整に関連する全てのタスクを実行する必要がありますが、(状態の保存等の)他のタスクは同時ディスパッチキューまたは二次スレッドに必要に応じて移動する必要があります。
なぜなら、applicationDidEnterBackground:で開始したバックグラウンドのタスクは、おそらくメソッドが終了した後でもまだ実行されないので、これらのタスクを開始する前に追加のバックグラウンド実行時間を要求する必要があるからです。
言い換えると、最初にbeginBackgroundTaskWithExpirationHandler:を呼び出し、それからディスパッチキューまたは二次スレッド上でタスクを実行します。

またアプリケーションは関心のあるオブジェクトに移行に対応する機会を与えるために、このメソッドが呼び出されると同時に周囲にUIApplicationDidEnterBackgroundNotification通知を投稿します。

バックグラウンドへ優雅に移行する方法についての詳細や、終了時のバックグラウンドのタスクの開始方法についての情報は、『iOSアプリケーションプログラミングガイド』を参照してください。

利用可能
iOS 4.0以降で利用可能

宣言
UIApplication.h


・applicationDidFinishLaunching:

アプリケーションの起動が完了した時に、デリゲートに伝えます。

- (void)applicationDidFinishLaunching:(UIApplication *)application

パラメータ
application
デリゲートするアプリケーションオブジェクトを指定します。

解説
このメソッドはアプリケーションの初期化と実行の準備をするために、以前のiOSのバージョンで使用されていました。
iOS 3.0以降では、代わりにapplication:didFinishLaunchingWithOptions:を使用する必要があります。
iOS 6.0以降では、アプリケーションの初期化にapplication:willFinishLaunchingWithOptions:を使用する場合があります。

このメソッドの実装では、アプリケーションのユーザインターフェイスの生成し、アプリケーションのデータ構造を初期化する必要があります。
アプリケーションが以前の起動との間でその状態を維持する場合、以前の状態にアプリケーションを復元するためにこのメソッドを使用します。

このメソッドを呼び出した後、関心のあるオブジェクトに初期化サイクルに対応する機会を与えるために、アプリケーションはUIApplicationDidFinishLaunchingNotification通知を投じます。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h


・applicationDidReceiveMemoryWarning:

アプリケーションがシステムからメモリの警告を受け取った時に、デリゲートに伝えます。

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application

パラメータ
application
デリゲートするアプリケーションオブジェクトを指定します。

解説
このメソッドの実装では、後に再構成(またはディスクからの再読み込み)できるキャッシュされたデータオブジェクトを破棄し、可能な限り多くのメモリを解放する必要があります。
アプリケーション全体のメモリを解放するには、UIViewControllerクラスのdidReceiveMemoryWarningUIApplicationDidReceiveMemoryWarningNotification通知を一緒に使用します。

このメソッドの実装を強く推奨します。
メモリ不足の状態の際に、アプリケーションが十分にメモリを解放できなかった場合は、システムが完全に終了すことがあります。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h


・applicationSignificantTimeChange:

時刻が大幅に変更された時に、デリゲートに伝えます。

- (void)applicationSignificantTimeChange:(UIApplication *)application

パラメータ
application
デリゲートするアプリケーションオブジェクトを指定します。

解説
大幅な時刻の変更の例としては、深夜の到着、キャリアによる時刻の更新、夏時間への変更などがあります。
デリゲートはアプリケーションのオブジェクトの表示時刻や、時刻変更の感度を調整をするために、このメソッドを実装することができます。

このメソッドを呼び出す前に、関心のあるオブジェクトに変更に対応する機会を与えるために、アプリケーションはUIApplicationSignificantTimeChangeNotification通知を投じます。

アプリケーションが現在一時停止している場合、このメッセージはアプリケーションがフォアグラウンドに戻るまでキューに入れられ、その時点で送付されています。
複数の時刻変更が発生した場合、最新のもののみ送付されます。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h


・applicationWillEnterForeground:

アプリケーションがフォアグラウンドに入ろうとしていることを、デリゲートに伝えます。

- (void)applicationWillEnterForeground:(UIApplication *)application

パラメータ
application
シングルトンのアプリケーションインスタンスを指定します。

解説
iOS 4.0以降では、このメソッドはバックグラウンドからアクティブ状態への移行の一部として呼び出されます。
このメソッドを使用して、アプリケーションがバックグラウンドに入る際に行った変更の多くを元に戻すことができます。
このメソッドの呼び出しの後は常にapplicationDidBecomeActive:メソッドの呼び出しが行われ、その後アプリケーションが非アクティブからアクティブ状態に移動します。

このメソッドを呼び出す直前に、関心のあるオブジェクトに移行に対応する機会を与えるために、アプリケーションはUIApplicationDidEnterBackgroundNotification通知を投じます。

利用可能
iOS 4.0以降で利用可能

宣言
UIApplication.h


・applicationWillResignActive:

アプリケーションが非アクティブになることを、デリゲートに伝えます。

- (void)applicationWillResignActive:(UIApplication *)application

パラメータ
application
シングルトンのアプリケーションインスタンスを指定します。

解説
このメソッドはアプリケーションがアクティブから非アクティブ状態に移行することを知らせるために呼び出されます。
(電話やSMSメッセージの着信などの)特定の種類の一時的な休止や、ユーザがアプリケーションを終了しバックグラウンド状態への移行した時に発生する可能性があります。
非アクティブ状態のアプリケーションは実行を続けますが、レスポンダへの着信イベントはディスパッチされません。

進行中のタスクの一時停止、タイマーの無効化、OpenGL ESのフレームレートの抑制には、このメソッドを使用する必要があります。
ゲームでは、ゲームの一時停止にこのメソッドを使用する必要があります。
アクティブまたはバックグラウンド状態のいずれかへの移行を待っている間、非アクティブ状態のアプリケーションは最小限の作業を行う必要があります。
このメソッドを呼び出した後、関心のあるオブジェクトに移行に対応する機会を与えるために、アプリケーションはUIApplicationWillResignActiveNotification通知を投じます。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h


・applicationWillTerminate:

アプリケーションが終了する時に、デリゲートに伝えます。

- (void)applicationWillTerminate:(UIApplication *)application

パラメータ
application
デリゲートするアプリケーションオブジェクトを指定します。

解説
このメソッドはアプリケーションが終了して完全にメモリから破棄されることを知らせます。
共有リソースの解放やユーザデータの保存、タイマーの無効化など、アプリケーションの最終的なクリーンアップタスクを実行するために、このメソッドを使用する必要があります。
このメソッドの実装は、任意のタスクを実行してから返すまでに約5秒かかります。
時間が無くなる前にメソッドが戻らなかった場合、システムは完全にプロセスを抹消する場合があります。

バックグラウンドでの実行をサポートしていない、またはiOS 3.x以前にリンクされたアプリケーションの場合、ユーザがアプリケーションを終了する時にこのメソッドは常に呼び出されます。
バックグラウンドでの実行をサポートするアプリケーションでは、ユーザがアプリケーションを終了する場合はアプリケーションは単純にバックグラウンドへ移動するので、このメソッドは一般的に呼び出されません。
ただしアプリケーションが(一時停止ではなく)バックグラウンドで実行されていて、システムがいくつかの理由により終了する必要がある場合は、このメソッドを呼び出す可能性があります。

このメソッドを呼び出した後、関心のあるオブジェクトに移行に対応する機会を与えるために、アプリケーションはUIApplicationWillTerminateNotification通知を投じます。

利用可能
iOS 2.0以降で利用可能

宣言
UIApplication.h



参考文献

UIApplicationDelegate Protocol Reference






Bose SoundSport wireless headphones
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
02 | 2017/03 | 03
Sun Mon Tue Wed Thu Fri Sat
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
Recent Articles
iTunes


Swift
Categories
Tips
WACOM


Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
BOSE

Bose SoundSport wireless headphones
ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
SQLite
OpenGL ES
Amazon


Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Profile

Author:水月杏香
永遠の初心者プログラマ。

QR Code
QR
Visitors