创建小块并通过多线程下载以提高Android

时间:2017-07-17 12:02:33

标签: android multithreading

我想知道有哪些库或代码创建小块文件以实现多个下载& 具有暂停的多线程,恢复功能

假设在Play商店中您可以找到许多下载管理器应用程序,如下所示

https://play.google.com/store/apps/details?id=com.dv.adm

enter image description here

我在Github找到了很多库,但仍然没有像我在上面的图片中看到的那样实现

https://github.com/majidgolshadi/Android-Download-Manager-Pro

https://github.com/Aspsine/MultiThreadDownload

2 个答案:

答案 0 :(得分:1)

我真的不知道这是否正确,但从我可以阅读的内容here开始,你必须使用HEADRANGE http标头来做类似的事情这个。你计算文件大小,然后分成相同字节大小的块,然后生成线程下载它们。

答案 1 :(得分:0)

您可以使用ThreadPoolExecutor轻松管理多个线程和工作分配。 ThreadPoolExecutor根据需要管理线程创建和终止。

乍一看它看起来非常令人生畏,但是当你花10分钟阅读它时它真的很简单。

自定义池构造函数如下所示:

Executor executor = new ThreadPoolExecutor(
     int corePoolSize, 
     int maximumPoolSize, 
     long keepAliveTime, TimeUnit unit, 
     BlockingQueue<Runnable> workQueue, 
     ThreadFactory threadFactory, 
     RejectedExecutionHandler handler 
); 

然后:

executor.execute(runnable);

您也可以使用内置执行程序。

您可以在此处详细了解:ThreadPoolExecutor on the Android developers site