最近遇到了一个后台执行的本地推送的问题,在网上查找了一些资料,发现这个方法是可行的
首先需要配置Info-Plist文件,在里面新建一个Required background modes。
添加完成后,在- (void)applicationDidEnterBackground:(UIApplication *)application里面添加如下代码
__block UIBackgroundTaskIdentifier background_task;
background_task = [application beginBackgroundTaskWithExpirationHandler:^ {
[application endBackgroundTask: background_task];
background_task = UIBackgroundTaskInvalid;
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
while(TRUE)
{
[NSThread sleepForTimeInterval:1];
}
[application endBackgroundTask: background_task];
background_task = UIBackgroundTaskInvalid;
});
然后运行程序,就会发现设置程序在后台运行的功能就实现了!