AFNetworking,后台下载和看门狗定时器

时间:2015-06-02 13:44:49

标签: ios afnetworking-2 nsurlsession watchdog

我正在使用OnTestHappening( true ); private void OnTestHappening( bool foo ) { var handler = TestHappening; if ( handler != null ) handler( this, new TestEventArgs( foo ) ); } 2.5.2,并且我已成功实现AFNetworking的使用来处理后台下载。问题如下:

  • 下载量可能非常小(几Kbs)或相当大(超过30或50 Mbs)。
  • 这些下载实际上是SOAP信封,嵌入式文件以Base64编码。我知道这不太理想,文件应该单独下载,但我无法控制该部分。
  • 我使用的Web服务必须先将所有文件转换为Base64,然后再给出SOAP信封的初始答案。这意味着文件越大,服务调用最初响应所需的时间就越长。

如此小的下载量(假设<15 Mb)工作正常。对于更大的下载,更具体地说,当服务的响应时间超过60秒时,我会在设备上收到以下日志:

AFURLSession

预计第一个日志条目,我的后台下载从后台获取请求开始,然后应用程序暂停。

如果Web服务花费的时间太长而无法给出初始答案,则会出现第二个日志条目。

我尝试更改各种timeoutInterval参数(configuration.timeoutIntervalForRequest,configuration.timeoutIntervalForResource,requestSerializer.timeoutInterval,urlRequest.timeoutInterval),没有任何影响。似乎iOS的Jun 2 15:27:08 Phonezon iap2d[6120] <Warning>: process xxx is now suspending ... Jun 2 15:27:42 Phonezon nsurlsessiond[6810] <Notice>: SocketStream watchdog timer fired after 65.000000 seconds of inactivity. Timing out the connection. 层决定在这65秒后终止我的请求。

我能做些什么来防止这种情况发生? 如果您需要更多详细信息,请与我们联系。

0 个答案:

没有答案