如果我的应用程序被用户强制退出,iOS会在后台启动它吗?

如果我的应用程序被用户强制退出,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);}

当应用程序在后台运行时,它运行得很好。(收到通知后,应用程序就会触发本地通知,就像上面的代码应该做的那样)。

然而,当应用程序没有运行时并收到推送通知。content-available旗子,应用程序未启动didRecieveRemoteNotification从来不调用委托方法。

WWDC视频多任务处理有什么新鲜事?(第204号来自WWDC 2013)显示如下:

它表示,当收到推送通知时,应用程序将被“启动到后台”。content-available旗子。

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

所以真正的问题是:

iOS会在用户强制退出应用程序后执行后台任务吗?


慕姐4208626
浏览 571回答 3
3回答

红糖糍粑

您可以在“管理计划”中将目标的启动设置更改为Wait for <app>.app to be launched manually,它允许通过在application: didReceiveRemoteNotification: fetchCompletionHandler:并发送推送通知以触发后台启动。我不确定它是否能解决这个问题,但它可能会帮助您进行目前的调试。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS