Browse Source

1.下载中删除全部任务闪退问题

huangxiaodong 8 months ago
parent
commit
401ea2df68

+ 6 - 4
创维盒子/双子星云手机/NAS/nasDownloadManager/nasDownloadFileManager.m

@@ -352,7 +352,8 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
 
     if(_databaseArr && _databaseArr.count == 3 ){
         HLog(@"正在遍历下载完成数组 开始 %@",model.fileName)
-        NSMutableArray *ingArr = _databaseArr[0];
+        NSMutableArray *ingArr0 = _databaseArr[0];
+        NSMutableArray *ingArr = [NSMutableArray arrayWithArray:_databaseArr[0]];
         couldPhoneFileModel*curDataModel = nil;
         for (couldPhoneFileModel*dataModel in ingArr) {
             //HLog(@"22222222 %@\n%@",urlString,dataModel.fileUrl);
@@ -383,7 +384,7 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
             [doneArr insertObject:curDataModel atIndex:0];
             
             HLog(@"开始删除某个指定的下载对象 %@",curDataModel.name)
-            [ingArr removeObject:curDataModel];
+            [ingArr0 removeObject:curDataModel];
             HLog(@"完成删除某个指定的下载对象 %@",curDataModel.name)
             
             //更新数据库
@@ -408,7 +409,8 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
     NSString * urlString = [model.url stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 
     if(_databaseArr && _databaseArr.count == 3 ){
-        NSMutableArray *ingArr = _databaseArr[0];
+        NSMutableArray *ingArr0 = _databaseArr[0];
+        NSMutableArray *ingArr = [NSMutableArray arrayWithArray:_databaseArr[0]];
         HLog(@"%@",ingArr)
         for (couldPhoneFileModel*dataModel in ingArr) {
             HLog(@"22222222 %@\n%@",urlString,dataModel.fileUrl);
@@ -427,7 +429,7 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
                                     
                 }];
                 
-                [self deteleModel:dataModel inArr:ingArr];
+                [self deteleModel:dataModel inArr:ingArr0];
                 break;
             }
         }

+ 18 - 11
创维盒子/双子星云手机/NAS/nasDownloadManager/nasDownloadManager.m

@@ -159,25 +159,32 @@
 - (void)deleteDownloadWithUrl:(NSString *)url
 {
     //1.检测等待下载的任务
+    BOOL isWaitingUrlType = NO;
     for (NSString*waitingUrl in self.downloadWaitingUrlArr) {
         if ([waitingUrl isEqualToString:url]) {
             [self.downloadWaitingUrlArr removeObject:waitingUrl];
+            isWaitingUrlType = YES;
             break;
         }
     }
     
     //2.检测下载中的任务
-    for (customDownloadOperation *operationDoing in self.downloadingOperationArr) {
-        if([operationDoing.url isEqualToString:url]){
-            [operationDoing.dataTask cancel];
-//            operationDoing.dataTask = nil;
-//            operationDoing.session = nil;
-//
-//            [operationDoing.handle closeFile];
-//            operationDoing.handle = nil;
-//
-//            [self.downloadingOperationArr removeObject:operationDoing];
-            break;
+    if(!isWaitingUrlType){
+        for (customDownloadOperation *operationDoing in self.downloadingOperationArr) {
+            if([operationDoing.url isEqualToString:url]){
+                operationDoing.isManualCancel = YES;
+                if(operationDoing.dataTask){
+                    [operationDoing.dataTask cancel];
+                }
+    //            operationDoing.dataTask = nil;
+    //            operationDoing.session = nil;
+    //
+    //            [operationDoing.handle closeFile];
+    //            operationDoing.handle = nil;
+    //
+    //            [self.downloadingOperationArr removeObject:operationDoing];
+                break;
+            }
         }
     }