您的位置:首页 > 移动开发 > IOS开发

iOS 进入后台后再向系统借一点时间完成任务

2017-11-11 20:48 260 查看
直接上代码:

- (void)applicationDidEnterBackground:(UIApplication *)application {

    

    UIApplication *app = [UIApplication
sharedApplication];

    __block
UIBackgroundTaskIdentifier bgTask;

    bgTask = [app
beginBackgroundTaskWithExpirationHandler:^{

        [app endBackgroundTask:bgTask];

        bgTask =
UIBackgroundTaskInvalid;

    }];

}
1、首先,程序正在运行时按Home键进入后台,此时程序会被挂起(如:定时器会被暂停),再次点开程序后定时器会从中断的地方再继续跑

2、想向系统借一点时间的话,需要在applicationDidEnterBackground中加代码,核心方法是beginBackgroundTaskWithExpirationHandler,借的时间约在3分钟不到。3分钟后会触发该方法的Handler回调,在回调需要[app endBackgroundTask:bgTask],然后程序会被重新挂起。注意:如果Handler回调里不加[app endBackgroundTask:bgTask]这句代码的话,那么3分钟后程序会被杀死,亲测有效。

3、最后bgTask = UIBackgroundTaskInvalid;标志任务完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios