2012-09-11 2 views
0

내가 지금 통지가 도착했을 때 나는 배경에서 응용 프로그램을 유지, 행동의 일부 몇 가지 설정을 수행하는 것이 가능성이 이미응용 프로그램이 백그라운드 일 때 알림;

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    if (application.applicationState == UIApplicationStateActive) 
     // app was already in the foreground 
    else 
     // app was just brought from background to foreground 
    ... 
} 

있다; 알림을 받으면 전경에서 앱을 가져오고 싶지 않습니다. 내가 원하는 것은 알림이 도착할 때, 나는 플래그를 몇 개 설정하고 (앱은 여전히 ​​백그라운드에 있습니다.) 사용자가 앱을 직접 열면 메시지를 다소 우아한 방식으로 볼 수 있습니다. 요약 : 알림이 도착하면 애플리케이션을 포 그라운드로 가져 가고 싶지 않지만 백그라운드에서 앱을 유지하는 코드에서 일부 작업을 수행하고 싶습니다.

감사합니다.

+0

그것은 배경에있는 동안 백그라운드 작업을 시작할 수 없습니다. iOS에서 백그라운드로 실행할 수있는 몇 가지 사항 만 있습니다. GPS 추적 및 사운드 재생 : 배경 작업에 대한 규칙은 매우 엄격합니다. –

답변

1

당신은 당신의 응용 프로그램이 들어오는 통지에 대해 아무것도 알 수 없습니다 배경에 있기 때문에

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

를 사용하는 것이 좋습니다. 알림은 iOS에서 처리됩니다.

그러나 사용자가 알림을 스 와이프/도청하여 앱을 열면 앱에 launchOptions이 전달됩니다. 사용자가 직접 앱을 열면 (앱 아이콘을 누름) launchOptions이 비어 있습니다. 자세한 내용은 UIApplicationDelegate Protocol Reference을 참조하십시오. 당신이 할 수있는 지역 알림 페이로드

[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey] 

:

은 당신이 할 수있는 원격 통지 페이로드를 검색하려면

[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey] 
관련 문제