1 - (void)applicationDidEnterBackground:(UIApplication *)application 2 { 3 [[UIApplication sharedApplication]setApplicationIconBadgeNumber:0];//进入前台取消应用消息图标 4 5 6 UIApplication* app = [UIApplication sharedApplication]; 7 8 __block UIBackgroundTaskIdentifier bgTask; 9 10 bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 11 12 dispatch_async(dispatch_get_main_queue(), ^{ 13 14 if (bgTask != UIBackgroundTaskInvalid) 15 16 { 17 18 bgTask = UIBackgroundTaskInvalid; 19 20 } 21 22 }); 23 24 }]; 25 26 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 27 28 dispatch_async(dispatch_get_main_queue(), ^{ 29 30 if (bgTask != UIBackgroundTaskInvalid) 31 32 { 33 34 bgTask = UIBackgroundTaskInvalid; 35 36 } 37 38 }); 39 40 }); 41 42 }
好了,这就是我的解决办法,不用系统的电话服务照样可以唤醒程序不被睡眠,导致后台推送不过来消息。。
谢谢大家,我们以后可以多多学习,多多进步。。
PS:不知道别的办法是什么,有别的办法的可以给我留言,我们一同探讨。。