diff --git a/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java b/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java index 65c6f35b..9e6fde29 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java +++ b/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java @@ -106,6 +106,10 @@ public class DownloadTaskQueue implements ITaskQueue { } @Override public void reTryStart(Task task) { + if (task == null){ + Log.w(TAG, "重试下载失败,task 为null"); + return; + } if (!task.isDownloading()) { task.start(); } else { diff --git a/Aria/src/main/java/com/arialyy/aria/core/task/DownloadUtil.java b/Aria/src/main/java/com/arialyy/aria/core/task/DownloadUtil.java index 032809b1..f1558cb3 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/task/DownloadUtil.java +++ b/Aria/src/main/java/com/arialyy/aria/core/task/DownloadUtil.java @@ -75,7 +75,7 @@ final class DownloadUtil implements IDownloadUtil { mDownloadEntity = entity; mListener = downloadListener; THREAD_NUM = threadNum; - mFixedThreadPool = Executors.newFixedThreadPool(THREAD_NUM); + mFixedThreadPool = Executors.newFixedThreadPool(Integer.MAX_VALUE); } public IDownloadListener getListener() { @@ -292,7 +292,7 @@ final class DownloadUtil implements IDownloadUtil { for (int l : recordL) { if (l == -1) continue; Runnable task = mTask.get(l); - if (task != null) { + if (task != null && !mFixedThreadPool.isShutdown()) { mFixedThreadPool.execute(task); } } diff --git a/README.md b/README.md index 710f0784..e444c096 100644 --- a/README.md +++ b/README.md @@ -113,4 +113,4 @@ License distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and - limitations under the License. + limitations under the License. \ No newline at end of file