iOS 后台任务继续活跃

正常情况下程序退出后,会在几秒之后停止工作。

若想让app进入后台保持活动状态可以设置beginBackgroundTaskWithExpirationHandler

// AppDelegate.h 文件
@property (assign, nonatomic) UIBackgroundTaskIdentifier backgroundUpdateTask;
// AppDelegate.m 文件

  • (void)applicationDidEnterBackground:(UIApplication *)application
    {
    [self beingBackgroundUpdateTask];
    // 在这里处理操作。完成后手动调用 endBackgroundUpdateTask
    [self endBackgroundUpdateTask];
    }
  • (void)beingBackgroundUpdateTask
    {
    self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
    [self endBackgroundUpdateTask];//如果在规定时间内任务没有完成,会调用这个方法。
    }];
    }
  • (void)endBackgroundUpdateTask
    {
    [[UIApplication sharedApplication] endBackgroundTask: self.backgroundUpdateTask];
    self.backgroundUpdateTask = UIBackgroundTaskInvalid;
    }

你可能感兴趣的:(iOS 后台任务继续活跃)