Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有优先级的下载管理器(Java、Android)_Java_Android_Multithreading_Download - Fatal编程技术网

具有优先级的下载管理器(Java、Android)

具有优先级的下载管理器(Java、Android),java,android,multithreading,download,Java,Android,Multithreading,Download,我正在我的应用程序中做一个小的下载管理器。我在用 ThreadPoolExecutor threadpool = new ThreadPoolExecutor(1,210, (int) 210, TimeUnit.SECONDS,new ArrayBlockingQueue<Runnable>(210), new mThreadFactory()); 最近我对我的应用程序做了一点改动,现在我需要区分两种下载:前台下载(用于需要尽快向用户显示的元素)和后台下载,例如,用于在磁盘上保存

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

ThreadPoolExecutor threadpool = new ThreadPoolExecutor(1,210, (int) 210, TimeUnit.SECONDS,new ArrayBlockingQueue<Runnable>(210), new mThreadFactory());
最近我对我的应用程序做了一点改动,现在我需要区分两种下载:前台下载(用于需要尽快向用户显示的元素)和后台下载,例如,用于在磁盘上保存Internet资源

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

有人能用这个解决方案指导我吗


提前感谢

您可以使用PriorityBlockingQueue而不是ArrayBlockingQueue,并为前台下载提供更高的优先级

threadpool.execute( new DownloadRunnable(url) );