iOS后台长久运行

在以前,当 app 被按 home 键退出后,仅有最多 5 秒钟的时间做一些保存或清理资源的工作。但是应用可以调用 UIApplication 的beginBackgroundTaskWithExpirationHandler方法,让 app 最多有 10 分钟的时间在后台长久运行。这个时间可以用来做清理本地缓存,发送统计数据等工作。
示例代码如下:

// AppDelegate.m文件
#import "AppDelegate.h"

@interface AppDelegate ()
// 程序后台任务标志位
@property (assign, nonatomic) UIBackgroundTaskIdentifier backgroundUpdateTask;

@end

// app已经进入后台
- (void)applicationDidEnterBackground:(UIApplication *)application {
    // 开始后台长久运行任务
    [self beginBackgroundUpdateTask];
    
    /**
     * 添加需要后台长久运行的任务代码
     */
    
    // 结束后台长久运行任务
    [self endBackgroundUpdateTask];
}

// 开始后台长久运行任务
- (void)beginBackgroundUpdateTask {
    self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        [self endBackgroundUpdateTask];
    }];
}

// 结束后台长久运行任务
- (void)endBackgroundUpdateTask {
    [[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpdateTask];
    self.backgroundUpdateTask = UIBackgroundTaskInvalid;
}

你可能感兴趣的:(iOS后台长久运行)