2014-11-03 63 views
0

在我的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-loop降低10個文件,那麼它們都開始在10個同時分開的線程中下載,這是不好的! 當我沒有放在一個單獨的線程,然後主線程必須等到下載完成,這是不好的!

解決方案是什麼?

+0

螺紋+固定大小的池執行人 – njzk2 2014-11-03 18:41:09

回答

0

解決方法是不要將此函數放入線程中,而是在需要時從線程調用函數。