当程序进入后台的时候,系统会自动调用程序的代理applicationDidEnterBackground方法。如下:
/**
* 当程序进入后台的时候,调用
*/
- (void)applicationDidEnterBackground:(UIApplication *)application {
// 提醒操作系统,当前这个应用需要在后台开启一个任务
// 操作系统会允许这个应用程序在后台保持运行状态(能够维持运行状态的时候是不确定的)
UIBackgroundTaskIdentifier taskID = [application beginBackgroundTaskWithExpirationHandler:^{
// 应用在后台运行事件过期了,就会调用这个block
// 时间过期,就结束该任务
[application endBackgroundTask:taskID];
}];
}
要想让自己的程序长时间在后台运行,那就骗一下系统,告诉系统,我们的程序在后台有很重要的事情要做,比如:播放音乐等。在Info.plist文件中可进行如下设置:
但是系统也不是傻子,系统会检测我们的程序,如果程序没有使用视频相关的SDK,系统还是不会让我们的程序在后台长时间运行的。我们要骗就骗到底,我们可以在程序开启完毕后播放一个0KB的mp3文件,且无限循环播放。这样就可能长时间后台运行程序了。