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;标志任务完成
- (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-获取系统完成任务所需的后台时间
- 在程序被送入后台时,向 iOS 借点时间,来完成一个长期任务
- 在程序被送入后台时,向 iOS 借点时间,来完成一个长期任务,比如定时器
- 在程序被送入后台时,向 iOS 借点时间,来完成一个长期任务
- 【代码笔记】获取系统完成任务所需的后台时间
- 程序被送入后台后,向 iOS 借时间,完成长期任务-备
- 在程序被送入后台时,向 iOS 借点时间,来完成一个长期任务,比如定时器
- iOS App进入后台获取更多的运行时间
- iOS App进入后台获取更多的运行时间
- iOSapp 进入后台后获取更多的时间操作
- IOS 后台挂起程序 当程序到后台后,继续完成Long-Running Task 任务
- ios在后台 完成一个长期任务
- IOS 后台挂起程序 当程序到后台后,继续完成Long-Running Task 任务
- iOS App进入后台获取更多的运行时间
- IOS 后台挂起程序 当程序到后台后,继续完成定位任务
- ios在后台 完成一个长期任务
- iOS App进入后台获取更多的运行时间
- IOS实现在后台执行一定时间的任务
- iOS App进入后台获取更多的运行时间
- ios 通知监听App进入后台,然后再进入App(获取验证码的时间间隔)