ฉันเรียกใช้การดึงพื้นหลังโดยใช้การcontent-availableตั้งค่าสถานะในการแจ้งเตือนแบบพุช ฉันมีfetchและremote-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 มีอะไรใหม่ใน Multitasking (# 204 จาก WWDC 2013) แสดงสิ่งนี้:
มันบอกว่าแอปพลิเคชัน "เปิดใช้เป็นพื้นหลัง" เมื่อได้รับการแจ้งเตือนแบบพุชด้วยการcontent-availableตั้งค่าสถานะ
ทำไมแอพของฉันไม่เปิดใช้งานเป็นพื้นหลัง
ดังนั้นคำถามที่แท้จริงคือ:
iOS จะทำงานพื้นหลังหลังจากที่ผู้ใช้บังคับให้ออกจากแอพหรือไม่
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
                


