【发布时间】:2014-11-03 18:39:18
【问题描述】:
在我的 android 应用程序中,偶尔会有一些文件需要下载。 所以我写了一个这样的下载函数:
public static void download(Context context, String url, String path) {
URLConnection conection = new URL(url).openConnection();
conection.connect();
InputStream is = new URL(url).openStream();
OutputStream os = context.openFileOutput(path, 0);
pipe(is, os); // write from inputstream to outputstream
os.close();
}
我不能决定是否将此函数放在单独的线程中?
当我把它放在一个单独的线程中时,如果我想用 for 循环下载 10 个文件,那么它们都开始在 10 个同时单独的线程中下载,这不好!
当我不放入单独的线程时,主线程必须等到下载完成,这也不好!
解决办法是什么?
【问题讨论】:
-
线程 + 固定大小的池执行器
标签: java android multithreading networking