我正在阅读SDImageCache的源代码。
基本上每次应用程序被杀之前,在UIApplicationWillTerminateNotification上,SDImageCache会传输缓存的每个文件,识别已过期的文件并删除它们。
在杀死该应用程序之前,系统会等待这类课程完成它的工作吗?或者删除过程会被粗暴地中断?
这个班级可以要求更多时间来处理吗?
答案 0 :(得分:1)
在applicationWillTerminate:
发送给您的应用代表后立即发送通知。从UIApplicationDelegate
's documentation,你有大约5秒钟。
您执行此方法大约需要五秒钟才能执行任何任务并返回。如果方法在时间到期之前没有返回,系统可能会完全终止该进程。
但是,您不应该依赖5秒钟,而是使用Instruments来尽可能快地提高代码的性能。如果您担心自己需要的时间超过5秒,则可以使用beginBackgroundTaskWithExpirationHandler:
请求更多。