我正在我的应用程序中做一个小下载管理器。我正在使用
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/