3.这里有一个问题,就是客户端是通过心跳来和服务端保持连接,心跳是由定时器触发的,当我退到后台以后,定时器方法被挂起,那么通过如下设置来在后台运行定时器
-
(void)applicationDidEnterBackground:(UIApplication
*)application{
UIApplication*
app = [UIApplication sharedApplication];
__block
UIBackgroundTaskIdentifier bgTask;
bgTask
= [app beginBackgroundTaskWithExpirationHandler:^{
dispatch_async(dispatch_get_main_queue(),
^{
if
(bgTask != UIBackgroundTaskInvalid)
{
bgTask
= UIBackgroundTaskInvalid;
}
});
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
0),
^{
dispatch_async(dispatch_get_main_queue(),
^{
if
(bgTask != UIBackgroundTaskInvalid)
{
bgTask
= UIBackgroundTaskInvalid;
}
});
});
}
原文:http://www.cnblogs.com/cb168/p/5137457.html