如果使用NSURLSession(在这种情况下使用Alamofire)向服务器发布一些数据的基本调用,则应用程序在前台启动呼叫,而当呼叫正在进行时,应用程序将移至后台并暂停。当应用程序回到前台时,正在进行的通话会发生什么?它是否超时(应用程序使用默认的60秒ephemeralSessionConfiguration)还是会收到其他一些错误?如果尚未达到超时,则呼叫是否仍在等待或操作系统是否已终止?我有默认的后台模式,没有请求没有后台时间。试图调试现场发生的问题。
答案 0 :(得分:0)
暂停您的应用时,您的网络请求将被暂停。所以基本上答案是,它取决于服务器是否在您的应用程序处于后台时放弃了您,以及内核中的套接字是否在您的应用程序被暂停时放弃。
通常,如果您需要在应用程序处于后台时移动数据,则应使用后台会话以及下载或上载任务。这样,实际的数据传输在一个单独的过程中发生(不会被暂停),您的应用程序将获取数据。
话虽如此,使用后台会话基本上与使用短暂配置相冲突,因为它涉及将数据存储在磁盘上。因此,如果您出于某种原因确实需要短暂的配置,那么在用户点击主页按钮后,您的应用程序的请求可能会在几秒钟内失败,只要您在短时间内提出请求,您就无法做到这一点。