Tentando usar o AsyncTask, faça o download de alguns arquivos de imagem

Eu tenho uma lista de arquivos armazenados es dentro do arraylist que eu preciso baixar no thread de segundo plano. Meu pensamento inicial é que o AsyncTask deve estar pronto para essa tarefa. Mas, eu tenho um problema, não sei como fornecer minha lista para o método doInBackground.

Minha matriz é definida como

private ArrayList<String> FilesToDownload = new ArrayList<String>();

Minha subclasse DownloadFiles (do jeito que está gravada agora) deve ser chamada com: new DownloadFiles (). Execute (url1, url2, url3, etc.);

Isso não é adequado para mim, pois nunca sei quantos URLs terei. Está praticamente mudando de caso para caso. Então, eu gostaria de passar de alguma forma minha lista de matrizes para o método doInBackground.

Eu tentei converter em array com toArray ():

new DownloadFiles().execute(FilesToDownload.toArray());

Mas, o eclipse me diz que executar não é aplicável ao argumento Object []. A sugestão era transmitir para o URL [], mas quando tentei, ocorreu um erro de transmissão ilegal e o aplicativo travou.

Parece que o doInBackground deve ser implementado com parâmetros no tipo varargs (URL ... urls).

Alguma idéia de como resolver meu problema? Obrigado.

class DownloadFiles extends AsyncTask<URL, Integer, Long> {
     protected Long doInBackground(URL... urls) {
         int count = urls.length;
         long totalSize = 0;        
         for (int i = 0; i < count; i++) {
             Log.d("Evento", "&&&& downloading: " + FilesToDownload.get(i).toString());
//             totalSize += Downloader.downloadFile(urls[i]);
//             publishProgress((int) ((i / (float) count) * 100));
         }
         return totalSize;
     }
     protected void onProgressUpdate(Integer... progress) {
        //setProgressPercent(progress[0]);
     }
     protected void onPostExecute(Long result) {
       //showDialog("Downloaded " + result + " bytes");
     }
}

questionAnswers(1)

yourAnswerToTheQuestion