Jor*_*rre 5 iphone background objective-c ipad
我知道在iOS中,后台应用只能运行
有没有一种方法可以避免我的应用程序在10分钟后被终止。在后台?我不会将我的应用程序提交到应用程序商店,因此允许所有操作(私有框架,即使我不需要它也可以使用gps),我知道苹果不推荐这样做,但这只是出于监视目的。我需要它不受限制地运行。
我探索了包括VoIP在内的几种可能性,但每10分钟仅给我30秒,这还不够。我还读了这篇文章: iPhone- 背景调查,其中JackPearse指定了一种使用30秒VoIP任务“恢复” 10分钟有限长度任务的方法。但是我不希望我的任务每10分钟开始和结束,它必须连续运行。我也尝试了他的UPDATE2,但是它对我不起作用。我什至尝试用GSEvent.type 2012拦截UIEvent,这似乎是结束我的后台任务的对象,但是没有运气。奇怪的是,当我打开Xcode并进行调试时,我的后台任务永远不会结束,但是当我不这样做(仅测试模拟器)时,它会在10分钟后结束。
我发现了如何通过在后台连续播放歌曲来使我的应用程序在后台运行超过 10 分钟。在 AppDidFinishLauching 上:
[[AVAudioSession sharedInstance] setActive:YES error:&error];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error];
NSURL *url = [NSURL fileURLWithPath:...]; //Song URL
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
player.numberOfLoops = -1;
[player play];
Run Code Online (Sandbox Code Playgroud)
在 AppDidEnterBackground 中,您可以在后台执行选择器,该选择器可以永久持续。应用程序不会被中断,您可以检查 UIApplication backgroundtimeRemaining 并看到它永远不会减少。
当然,在plist中将应用程序声明为后台音频应用程序。