java - 优先下载管理器(Java、Android)

标签 java android multithreading download

我正在我的应用程序中做一个小下载管理器。我正在使用

ThreadPoolExecutor threadpool = new ThreadPoolExecutor(1,210, (int) 210, TimeUnit.SECONDS,new ArrayBlockingQueue<Runnable>(210), new mThreadFactory());

并调用以下方法来订购下载:

threadpool.execute( new DownloadRunnable(url) );

最近我对我的应用程序做了一些更改,现在我需要区分两种下载:前台下载(用于需要尽快向用户显示的元素)和后台下载,例如用于在磁盘上保存互联网资源。

我希望某种类型的池执行器在选择要下载的新元素时始终优先考虑前台下载(如果存在),否则下载后台资源。

有人可以指导我解决这个问题吗?

提前致谢

最佳答案

您可以使用 PriorityBlockingQueue 代替 ArrayBlockingQueue,并为前台下载提供更高的优先级。

关于java - 优先下载管理器(Java、Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7625839/

相关文章:

c - 线程中的 sleep() 导致 main 也进入休眠状态

javascript - Node 开发服务器和 Spring Boot 应用程序之间的跨源请求被阻止

java - 如何从组键获取组在可扩展 ListView 中的位置?

java - 我可以应用哪些模式来避免方法重载此类中的所有方法?

android - 适用于多个设备的 WiFi Direct

java - 来自 SyncAdapter 的 Realm 不正确线程错误

java - Apache 点燃。 QueryCursor 无需事务模式即可工作,即使直接声明事务也是如此。为什么?

.net - Android 链接错误网页不可用 asp .net

android - 如何在android中创建圆形ProgressBar?

multithreading - 如何在不使用跟踪句柄的情况下等待未知数量的 Rust 线​​程完成?