From 0a858ed58b484a23d01a8232e151dd8efa145561 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期三, 22 八月 2018 14:57:46 +0800
Subject: [PATCH] 1621 IOS分包资源下载弹框,点击暂停游戏崩溃

---
 System/AssetVersion/RemoteFile.cs |  101 +++++++++++++++++++++++++++++---------------------
 1 files changed, 59 insertions(+), 42 deletions(-)

diff --git a/System/AssetVersion/RemoteFile.cs b/System/AssetVersion/RemoteFile.cs
index 4467c58..cf9829e 100644
--- a/System/AssetVersion/RemoteFile.cs
+++ b/System/AssetVersion/RemoteFile.cs
@@ -72,7 +72,7 @@
         }
     }
 
-    AssetVersion assetVersion;
+    public AssetVersion assetVersion { get; private set; }
     protected string mRemoteFile;
     protected string localFile;
     bool speedLimit = false;
@@ -123,6 +123,7 @@
 
     public static void Prepare()
     {
+        gDownloadIsRunningCount = 0;
         gStartTickcount = System.Environment.TickCount;
         TotalDownloadedSize = 0L;
         downloadSpeedRef = 0f;
@@ -153,50 +154,57 @@
         }
 
         stop = true;
-
-        if (headRequest != null)
+        try
         {
-            headRequest.Abort();
-            headRequest = null;
+            if (headRequest != null)
+            {
+                headRequest.Abort();
+                headRequest = null;
+            }
+
+            if (headResponse != null)
+            {
+                headResponse.Close();
+                headResponse = null;
+            }
+
+            if (fileRequest != null)
+            {
+                fileRequest.Abort();
+                fileRequest = null;
+            }
+
+            if (fileResponse != null)
+            {
+                fileResponse.Close();
+                fileResponse = null;
+            }
+
+            if (fs != null)
+            {
+                fs.Flush();
+                fs.Close();
+                fs = null;
+            }
+
+            if (inStream != null)
+            {
+                inStream.Close();
+                inStream = null;
+            }
         }
-
-        if (headResponse != null)
+        catch (Exception ex)
         {
-            headResponse.Close();
-            headResponse = null;
+            Debug.Log(ex);
         }
-
-        if (fileRequest != null)
+        finally
         {
-            fileRequest.Abort();
-            fileRequest = null;
-        }
-
-        if (fileResponse != null)
-        {
-            fileResponse.Close();
-            fileResponse = null;
-        }
-
-        if (fs != null)
-        {
-            fs.Flush();
-            fs.Close();
-            fs = null;
-        }
-
-        if (inStream != null)
-        {
-            inStream.Close();
-            inStream = null;
-        }
-
-        onCompleted = null;
-        mHadError = false;
-
-        if (state == State.Working)
-        {
-            gDownloadIsRunningCount--;
+            onCompleted = null;
+            mHadError = false;
+            if (state == State.Working)
+            {
+                gDownloadIsRunningCount--;
+            }
         }
     }
 
@@ -324,7 +332,11 @@
                             headResponse.Close();
                             headResponse = null;
                         }
-                        headRequest.Abort();
+                        if (headRequest != null)
+                        {
+                            headRequest.Abort();
+                            headRequest = null;
+                        }
                     }
 
                 }, headRequest);
@@ -373,7 +385,12 @@
         if (mHadError)
         {
             DebugEx.LogWarningFormat("鑾峰彇杩滅▼鏂囦欢{0} 淇℃伅澶辫触!", mRemoteFile);
-            headRequest.Abort();
+            if (headRequest != null)
+            {
+                headRequest.Abort();
+                headRequest = null;
+            }
+
             done = true;
             gDownloadIsRunningCount--;
             yield break;

--
Gitblit v1.8.0