application:didFinishLaunchingWithOptions:通知によりアプリが起動されたときに、ペイロード情報でのみ呼び出されます。たとえば、ユーザーが通知アラート (通知センターに追加) またはcontent-avialble = 1ペイロードで受信した通知 (ニューススタンド通知) をタップし、アプリがフォアグラウンドでもバックグラウンドでもない場合に、これが発生する可能性があります。
アプリがバックグラウンドにあるときにアプリが通知を受け取る場合。ニューススタンドの通知の場合、またはユーザーがアラートの下のアクション ボタンをタップした場合、メソッドが呼び出されます
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
と[[UIApplication sharedApplication] applicationState]等しくないUIApplicationStateActive。
上記の場合、ユーザーが通知アラートのアクション ボタンをタップせず、それをタップしてアプリを起動しない場合、どちらもdidFinishLaunchingWithOptions呼び出さdidReceiveRemoteNotificationれません。
フォアグラウンドdidReceiveRemoteNotificationで呼び出されたときにアプリが通知を受信した場合、 は[[UIApplication sharedApplication] applicationState]と等しくなりUIApplicationStateActiveます。
バッジのnotification場合、アプリが実行されていない場合、コードは実行されず、バッジはアプリ アイコンで 1 増加します。アプリを起動すると(アプリアイコンをタップ)didFinishLaunchingWithOptions、通常通り呼び出されます。(通知を受信したときにアプリがバックグラウンドまたはフォアグラウンドにある場合は、上記と同じ)
したがって、これは考えられるすべてのケースをカバーしていると思います。また、背景のケースが有効であることにも注意してくださいiOS SDK >= 4.0