0

我想在收到推送通知时执行一项任务。我在方法中编写了我的代码- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo。当应用程序在前台时它工作正常,但是当应用程序在后台时,上述方法不会被调用。当应用程序在后台时,有什么方法可以调用这个方法。这个应用程序不适合提交到 iTunes,所以有什么好的 hack技巧吗?;)

4

1 回答 1

0

每当应用程序进入后台时,所有通知都开始在后台线程中发生。所以你需要做这样的事情。

...
[[NSNotificationCenter defaultCenter] addObserver:self       
                                         selector:@selector(processNotificationInBackground:) 
                                             name:TheNameOfTheNotification 
                                           object:nil];
...

- (void) processNotificationInBackground:(NSNotification *)not {
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        /* your background notification processing code goes here */
        /* note that you should transfer control back to the main queue if you need to update your UI */
    }
}
于 2012-12-04T06:16:57.437 回答