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