iOS 앱에서 push를 수신할 때, 앱의 상태는 다음의 세 가지 상태 중 하나에 있다.
1. 앱이 실행 상태가 아님( push 수신으로 실행됨 )
2. 앱이 foreground( 실행 중 ) 상태에서 push를 수신함
3. 앱이 background 상태에서 push를 수신함
각각의 상태에서 별도의 다른 동작을 위해 이 상태를 구분할 수 있어야 하고, AppDelegate 내에서 다음의 코드를 통해 구분이 가능하다.
# Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if (launchOptions && [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]) { // 1번 상태에서 push 수신 } return YES; } - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { if (application.applicationState == UIApplicationStateActive) { // 2번 상태에서 push 수신 } else { // 3번 상태에서 push 수신 } }