iOS APP在后台执行任务

2019-01-10  本文已影响0人  小布丁_be3e

        正常APP在切换到后台后不能继续执行代码,有时我们有任务需要继续执行,目前了解到可以使用以下方法:

使用后台任务方法beginBackgroundTaskWithExpirationHandler;

1.AppDelegate.h中申明变量 @property (nonatomic) UIBackgroundTaskIdentifier backgroundTask;

2.在APP进入后台方法中开启后台任务 - (void)applicationDidEnterBackground:(UIApplication *)application {

         [self begingBackgroundTask];

         //执行自己需要执行的任务

         [self somethingNeedToDo];

}

-(void)somethingNeedToDo{

       //添加自己需要执行的操作

         操作结束后调用方法:(可以在异步操作结束后回主线程调用)

         [self endBackgroundTask];

}

-(void)begingBackgroundTask{

    self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{

        [self endBackgroundTask];

    }];

}

-(void)endBackgroundTask{

    [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];

    self.backgroundTask = UIBackgroundTaskInvalid;

}

上一篇 下一篇

猜你喜欢

热点阅读