在后台保存线程未完成

时间:2015-03-03 17:44:25

标签: ios ios8 nsfilemanager avaudiorecorder dispatch-async

我有一个AVAudioRecorder的实例,我注意到当用户使用较大的记录关闭应用程序时,文件无法正确保存。

当我在主线程中调用[recorderObject stop]并且文件在本地保存时,甚至会发生这种情况。

我也尝试在录制停止后移动文件(在(void)audioRecorderDidFinishRecording:successfully:方法中)。但是我注意到当我使用NSFileManager在具有high优先级的后台线程中移动时,它也不总是完成。

即使用户在完成较长时间的录制后不久退出应用程序,我还有办法确保文件得到保存吗?

由于

1 个答案:

答案 0 :(得分:0)

审核Apple's documentation以便在后台执行任务。

  

移动到后台的应用程序预计将进入后台   尽可能快地保持静止状态,以便它们可以被暂停   由系统。如果您的应用程序处于任务中间并需要一个   很少有额外的时间来完成那个任务,它可以调用   beginBackgroundTaskWithName:expirationHandler:或   beginBackgroundTaskWithExpirationHandler:的{​​{1}}方法   对象请求一些额外的执行时间。打电话给   这些方法暂时延迟暂停您的应用程序,并给予它   一点额外的时间来完成它的工作。完成这项工作后,   你的应用必须调用endBackgroundTask:方法让系统   知道它已经完成并且可以暂停。