8

为了更好地理解NSUrlSession.

我希望看到的是:即使触发它们的应用程序被杀死(例如用户通过任务管理器),文件下载仍将继续。然而,这似乎并没有发生。

这是配置问题还是应用程序终止后后台文件传输不起作用?我认为整个想法是 iOS 将重新启动应用程序。

4

2 回答 2

9

如果系统终止了您的应用程序并且您的后台会话有活动下载,您的下载将继续,并且系统将在下载完成后启动您的应用程序。但是,如果用户强制退出您的应用程序,所有任务都会被取消。

backgroundSessionConfigurationWithIdentifier 的文档:

如果 iOS 应用程序被系统终止并重新启动,则该应用程序可以使用相同的标识符来创建新的配置对象和会话,并检索终止时正在进行的传输状态。此行为仅适用于系统正常终止应用程序。如果用户从多任务屏幕终止应用程序,系统将取消所有会话的后台传输。此外,系统不会自动重新启动用户强制退出的应用程序。用户必须明确地重新启动应用程序才能重新开始传输。

于 2015-03-04T23:28:38.783 回答
0

否 - 当用户强制退出时,应用程序不会重新启动以进行后台下载。

应用程序的 iOS8 文档:didReceiveRemoteNotification:fetchCompletionHandler:说:

使用此方法为您的应用处理传入的远程通知。与 application:didReceiveRemoteNotification: 方法不同,该方法仅在您的应用程序在前台运行时调用,系统在您的应用程序在前台或后台运行时调用此方法。此外,如果您启用了远程通知后台模式,系统会启动您的应用程序(或将其从挂起状态唤醒)并在推送通知到达时将其置于后台状态。但是,如果用户强制退出,系统不会自动启动您的应用程序。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会再次尝试自动启动您的应用程序。

于 2014-11-12T05:17:04.650 回答