

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:不知道别的办法是什么,有别的办法的可以给我留言,我们一同探讨。。