beginBackgroundTaskWithExpirationHandler

正常程序退出后,会在几秒内停止工作;

要想申请更长的时间,需要用到

beginBackgroundTaskWithExpirationHandler

endBackgroundTask

一定要成对出现

- (void)applicationDidEnterBackground:(UIApplication*)application 

{

UIApplication*application = [UIApplicationsharedApplication];

backgroundTask= [applicationbeginBackgroundTaskWithExpirationHandler:^{

[selfstopBackgroundTask];

}];

if(backgroundTask==UIBackgroundTaskInvalid)

{

[selfstopAllCamera];

return;

}

if(backgroundTaskTimer)

{

[backgroundTaskTimerinvalidate];

backgroundTaskTimer=NULL;

}

backgroundTaskTimer= [NSTimerscheduledTimerWithTimeInterval:30.0ftarget:selfselector:@selector(stopBackgroundTask)userInfo:NULLrepeats:NO];

}


-(void)stopBackgroundTask

{

if(backgroundTaskTimer)

{

[backgroundTaskTimerinvalidate];

backgroundTaskTimer=NULL;

}

UIApplication*application = [UIApplicationsharedApplication];

[applicationendBackgroundTask:backgroundTask];

backgroundTask=UIBackgroundTaskInvalid;

}


- (void)applicationWillEnterForeground:(UIApplication*)application

{

[selfstopBackgroundTask];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容