Aller au contenu

onDownloadStart comment le lancer ?


Morgan26

Recommended Posts

Bonjour,

J'aimerais, au lancement de mon application lancer le téléchargement d'une série d'images a partir de différents url et ce afin de permettre une meilleure et plus rapide utilisation de mon application par la suite.

Je me suis renseigne sur le net, notamment sur developper.android.com ou je n'ai trouve que cette fonction : onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength). Cependant il semble que l'on ne puisse pas l'appeler a l'arrache dans une activity qui extends une activity. car la fonction est alors inconnue. Donc ma question est : comment peut on lancer cette fonction ?

Merci d'avance pour votre aide !

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

En regardant rapidement la méthode DownloadListener#onDownloadStart, j'ai l'impression qu'il s'agit plus d'un listener utilisé par WebView lorsque l'utilisateur lance un téléchargement. Donc je ne pense pas que cela correspond à tes besoins.

Pour moi le download d'image doit se faire avec l'API http commons pour le téléchargement des images et la classe AyncTask pour la gestion en tâche de fond (thread) du téléchargement.

Pour le téléchargement, comme exemple tu as celui de Google : PhotoStream avec plus particulièrement la méthode Flickr#downloadPhoto :

   void downloadPhoto(Photo photo, PhotoSize size, OutputStream destination) throws IOException {
       final BufferedOutputStream out = new BufferedOutputStream(destination, IO_BUFFER_SIZE);
       final String url = photo.getUrl(size);
       final HttpGet get = new HttpGet(url);

       HttpEntity entity = null;
       try {
           final HttpResponse response = mClient.execute(get);
           if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
               entity = response.getEntity();
               entity.writeTo(out);
               out.flush();
           }
       } finally {
           if (entity != null) {
               entity.consumeContent();
           }
       }
   }

Attention toutefois à l'exemple, lorsqu'il a été écrit AyncTask et AndroidHttpClient n'existaient pas. Ces deux classes devraient te faciliter le développement.

Bon courage,

ichpa

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...