Quellcode durchsuchen

1.修复进入后台中断下载 再回前台没有重新启动问题

huangxiaodong vor 11 Monaten
Ursprung
Commit
97ad285093

+ 17 - 0
创维盒子/双子星云手机/Class/Set/uploadFile/customDownloadManager/customDownloadManager.m

@@ -233,6 +233,15 @@
     [self.downloadingOperationArr removeAllObjects];
 }
 
+#pragma mark 重新启动因为网络失败而停止的任务
+- (void)reDownloadNetworkTaskBy:(NSString*)url
+{
+    @synchronized (self) {
+        [self.downloadWaitingUrlArr insertObject:url atIndex:0];
+    }
+    
+    [self beginDownload];
+}
 
 #pragma mark - <NSURLSessionDataDelegate>
 
@@ -442,6 +451,14 @@ totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend {
         }
     }
     
+    if(error && error.code == -1005){//网络中断
+        //延时几秒再次启动这个任务
+        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+            [self reDownloadNetworkTaskBy:operation.url];
+        });
+        return;
+    }
+    
     if(operation.isManualCancel){
         [self beginDownload];
         return;

+ 1 - 0
创维盒子/双子星云手机/Class/Set/uploadFile/customDownloadManager/customDownloadOperation.h

@@ -14,6 +14,7 @@ typedef  enum : NSUInteger {
     customDownloadStateSuspended,     /** 下载暂停 */
     customDownloadStateCompleted,     /** 下载完成 */
     customDownloadStateFailed,        /** 下载失败 */
+    //customDownloadStateNetWorkFailed,  /** 下载时网络中断 */
 } customDownloadStateType;