相关疑难解决方法(0)

如果用户强行退出,iOS会将我的应用程序启动到后台吗?

我通过content-available在推送通知上使用标志来触发后台获取.我有fetchremote-notification UIBackgroundModes启用.

这是我在AppDelegate.m中使用的实现:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"Remote Notification Recieved");
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.alertBody =  @"Looks like i got a notification - fetch thingy";
    [application presentLocalNotificationNow:notification];
    completionHandler(UIBackgroundFetchResultNewData);

}
Run Code Online (Sandbox Code Playgroud)

当应用程序在后台运行时,它可以正常工作.(收到通知,应用程序触发"看起来像我收到通知"本地通知,因为上面的代码应该这样做).

但是,当应用程序未运行并且收到带有content-available标志的推送通知时,应用程序不会启动,并且didRecieveRemoteNotification永远不会调用委托方法.

WWDC视频最新的多任务处理(来自WWDC 2013的#204)显示了这一点:在此输入图像描述

它表示当收到带有content-available标志的推送通知时,应用程序将"启动到后台" .

为什么我的应用程序没有启动到后台?

所以真正的问题是:

用户强行退出应用后,iOS会执行后台任务吗?

push-notification apple-push-notifications ios ios7

217
推荐指数
4
解决办法
12万
查看次数