iOS 后台运行实现




-(void)applicationDidEnterBackground{

    NSLog(@"%@",NSStringFromSelector(_cmd));

    

    //得到当前应用程序的UIApplication对象

    UIApplication *app = [UIApplication sharedApplication];

    

    //一个后台任务标识符

    UIBackgroundTaskIdentifier taskID;

    taskID = [app beginBackgroundTaskWithExpirationHandler:^{

        //如果系统觉得我们还是运行了太久,将执行这个程序块,并停止运行应用程序

        [app endBackgroundTask:taskID];

    }];

    //UIBackgroundTaskInvalid表示系统没有为我们提供额外的时候

    if (taskID == UIBackgroundTaskInvalid) {

        NSLog(@"Failed to start background task!");

        return;

    }

    NSLog(@"Starting background task with %f seconds remaining", app.backgroundTimeRemaining);

    [NSThread sleepForTimeInterval:10];

    NSLog(@"Finishing background task with %f seconds remaining",app.backgroundTimeRemaining);

    //告诉系统我们完成了

    [app endBackgroundTask:taskID];

}

你可能感兴趣的:(iOS 后台运行实现)