我正在尝试了解Apple的背景执行文档:
配置完成后,您的NSURLSession对象将无缝地上传 并在适当的时候将任务下载到系统。如果任务完成 当你的应用程序仍在运行时(无论是在前台还是在 background),会话对象通常会通知其委托 办法。如果任务尚未完成,系统将终止您的 应用程序,系统自动继续管理任务 背景。如果用户终止您的应用,系统将取消任何应用 待定任务。
当与后台会话关联的所有任务都是 完成后,系统重新启动已终止的应用程序(假设是 sessionSendsLaunchEvents属性设置为YES,用户确实如此 不强制退出应用程序)并调用应用程序委托 应用:handleEventsForBackgroundURLSession:completionHandler: 方法。 (系统还可以重新启动应用程序以处理身份验证 挑战或其他需要您的应用程序的任务相关事件 注意。)在你的委托方法的实现中,使用 提供标识符以创建新的NSURLSessionConfiguration和 NSURLSession对象具有与以前相同的配置。系统 将新会话对象重新连接到以前的任务和报告 他们的状态到会话对象的委托。
如果我使用NSURLSession
,那么当应用程序在上传进程仍在进行时进入后台时,只要应用程序未被用户终止,该进程就不会被终止或死亡(我假设这是通过从应用列表中删除我的应用程序)?
答案 0 :(得分:3)
仔细阅读文字。作为所有好的文档,它非常清楚地说明了它的含义,你只需要仔细阅读它。
你没仔细看过。
有三种情况:当任务完成时,您的应用仍在运行,当上一个任务完成时,系统已关闭您的应用,或者用户在上一个任务完成之前关闭了应用。不,它没有说应用程序保持活着的任何地方。文档清楚地说明了每种情况下会发生什么。
iOS会杀死后台应用,并使用户看起来像是在运行。