2011-11-22 59 views
2

我写了我的第一个iPhone应用程序,并设法进入App Store。后来我发现了一个在真实设备上发生的错误,但不是在我的模拟器上。我已经提交了一个修复程序(更改plist以防止应用程序在后台运行),但我不明白为什么会发生。为什么我的iPhone应用程序在后台继续?

我的应用程序允许用户录制声音字节,但是在录制时他们可以使用iPhone主页按钮将应用程序移动到背景,然后如果他们不重新启动手机,它可以永久记录或者应用程序不会崩溃。

从我读过的所有内容中获得的印象是,这不应该发生,因为如果您想要这样做,您必须特别询问背景音频,但现在看来,您必须特意要求禁用它。

任何人都可以向我解释这个吗?

+0

什么是你的问题在后台录制或不允许应用程序在后台? –

+0

我的问题是我不明白为什么它在后台记录时,我没有要求获得许可。 – Michael

回答

1

iOS App生命周期在Apple的iOS App Programming Guide中有描述。

该应用程序有机会保存数据,并在被暂停之前停止不需要运行的事情。您可以通过使用beginBackgroundTaskWithExpirationHandler:来请求额外的时间。

如果您希望自己的应用程序在放入后台时停止执行“正常工作”,则需要检测应用程序状态转换并自行停止。

+0

因此,只要我想在后台录制音频,但播放音频是一种特殊情况,您需要为其添加权限? – Michael

+0

在暂停之前,您只能进行约5秒的清理工作。如果你想播放音频,你可以在'Info.plist'文件中将'UIBackgroundModes'键设置为'audio'并且成为一个长时间运行的后台任务。 – trojanfoe

相关问题