"UIBackgroundTaskInvalid"是什么意思?

sot*_*a_m 4 iphone background objective-c ios4

我正在开发在后台运行的iPhone应用程序(iOS4),并参考Apple在以下网址上编写的"完成背景中的有限长度任务"

http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072-CH5

然后我就能够实现后台任务了.(当然,我看到应用程序有10分钟的时间限制.)但是,我仍然无法理解" bgTask = UIBackgroundTaskInvalid;"(清单4-2中的第7,16行)的含义.

在我看来,从未达到上面显示的那条线.因为endBackgroundTask:之前有" ",后台任务将结束.事实上,当我使用xcode调试器进行检查时,这种想法可能是正确的,并且无法在Line7,16处到达.

如果是这样,这条线是多余的吗?或者有没有理由要写?

我将不胜感激任何帮助.提前致谢.

gra*_*rks 10

如果在应用程序完成其后台任务之前10分钟用完,则会调用块中的代码.

此块中的代码必须调用endBackground:以指示应用程序已确认并接受该情况 - 如果不是,则应用程序将被终止.请注意,调用该方法不会终止应用程序 - 它只是向操作系统指示后台任务执行已完成.

第二行只是重置bgTask为中性值,而不是将其设置为不再存在的任务的id.这是一个整洁的事情,而不是必不可少的.

(如果第二行在应用程序下一次被预先处理之前没有被执行,我不会感到惊讶,因为一旦后台执行结束,应用程序就不会有任何CPU时间运行.但是没有测试过这个)