Autore Topic: Download di MOLTE immagini su AsyncTask  (Letto 543 volte)

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Download di MOLTE immagini su AsyncTask
« il: 13 Ottobre 2011, 00:09:17 CEST »
0
Salve a tutti,
ho la necessità di scaricare qualcosa come 5/600 immagini, ho provato con il classico AsyncTask ma dopo un poco il gestore dei thread mi dice che ne avvio troppi...
ora mi domando...come posso scaricare un elevato numero di immagini?

byeeeeeeeeeeee

Offline ROS

  • Utente normale
  • ***
  • Post: 196
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 10.04
Re:Download di MOLTE immagini su AsyncTask
« Risposta #1 il: 13 Ottobre 2011, 01:22:54 CEST »
0
Come stai facendo va piu' che bene...io le ho scaricate con un for, ad ogni for veniva avviata la funzione download( stringId ) dell'oggetto ImageWeb (mia classe). Per scaricare 400immagini non ha dato nessun problema, con tanto di progress bar di avanzamento ;)

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:Download di MOLTE immagini su AsyncTask
« Risposta #2 il: 13 Ottobre 2011, 01:25:44 CEST »
0
uhm...........a me ha mandato in crash tutto quanto...domani mi rimetto meglio anche perchè devo montare tutto su dispositivo fisico ogni volta e posto il log cat magari ne vengo a capo, tra l'altro a me non c'era neanche la progress bar ma una indeterminate (mi piace di più :))
Uhm.... pensandoci forse ho capito cosa manda in crash il tutto domani mi rimetto all'opera e verifico la mia ipotesi
« Ultima modifica: 13 Ottobre 2011, 01:59:09 CEST da MagOscuro, Reason: pensata prima di dormire »

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:Download di MOLTE immagini su AsyncTask
« Risposta #3 il: 14 Ottobre 2011, 01:57:12 CEST »
0
ok oggi mi son rimesso ed il download sembrava andare tuttavia a quanto pare mi salva file vuoti  o_O
ecco la funzione richiamata dall'asynctask

Codice (Java): [Seleziona]
        public Boolean DownloadFromURL (String main_url, String definition_file, String nome_singolo_file) throws IOException {
                int total = 0;
               
                String destination = null;
                String full_path_destination = null;
            Boolean esito = false;
            String dir_for_download = definition_file.substring(0, definition_file.length()-4);
            String dir_token = "/token/";
           
            destination = FileUtils.PathCombine(Parametri.getInstance().getStoragePath(),dir_token + dir_for_download);
            full_path_destination = FileUtils.PathCombine(destination, nome_singolo_file);
            Log.i(TAG,full_path_destination);
           

            URL url = new URL( main_url + dir_token + dir_for_download + "/" + nome_singolo_file);
            Log.i(TAG,url.toString());
            //URLConnection connessione = url.openConnection();
            try {    
                //connessione.connect();

             
                InputStream input = new BufferedInputStream(url.openStream());
                OutputStream output = new FileOutputStream(full_path_destination);

                byte data[] = new byte[1024];
                int bytes = 0;

                File file = new File(Parametri.getInstance().getStoragePath()+dir_token+dir_for_download+"/"+nome_singolo_file);
                Log.i(TAG,file.getAbsolutePath());
               
                        if (!file.exists() && input.read() != -1 ) {
                                while ((bytes = input.read(data)) != -1) {
                                        total += bytes;
                                        output.write(data, 0, bytes);
                                }
                        }
                output.flush();
                output.close();
                input.close();
                esito = true;
                Log.i(TAG,"DOWNLOAD OK: " + nome_singolo_file);
            }
            catch(ConnectTimeoutException e){
                Log.e(TAG,e.getMessage());
            }
            catch (Exception e) {
                Log.e(TAG, "DOWNLOAD KO: " + e.toString());
            }

            return esito;
        }

ok non è proprio pulitissimo come codice, ma mi preme che sto download vada :)

se qualcuno ha idee o suggerimenti...

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Download di MOLTE immagini su AsyncTask
« Risposta #4 il: 14 Ottobre 2011, 10:15:31 CEST »
0