Téléchargement de fichiers
Téléchargements serveur -> Application Android (download)
Téléchargements Application Android -> serveur (upload)

Retour sélection autres tests

Téléchargements (download)

Les téléchargements ne rentrent pas directement dans les tests de base d'une application android avec webview, puisque ils sont entèrement définis par du code java dans l'application, mais comme toute application se doit à un moment ou à un autre de pouvoir télécharger des fichiers cela permettra d'en comprendre le mécanisme.

Depuis Android HoneyComb (3.0) Android lève une exception (NetworkOnMainThread) pour lutter contre la mauvaise pratique de lancer des téléchargements sur la thread principale ce qui gèle l'interface utilisateur.
Il faut donc obligatoirement passer par un thread à minima pour ne pas empiéter sur le thread graphique dessinant l'UI.

Et utiliser plutôt une AsyncTask. Cette classe offre trois méthodes :

  • onPreExecute : cette méthode est exécutée sur le thread graphique et permet de préparer l'UI (mettre un diagog, griser, changer les états...),
  • doInBackground : cette méthode est exécutée dans un autre thread et sert à réaliser le gros du travail,
  • onPostExecute : cette méthode est exécutée sur le thread graphique et permet de modifier l'UI suite au boulot terminé (charger les nouvelles données, enlever un dialod, changer les états...).

Il y a aussi la méthode publishProgress qui est facultative. Elle est exécutée sur le thread graphique et permet de mettre à jour un affichage via l'utilisation de la méthode publish dans doInBackground.

Les fichiers téléchargés seront disponibles dans le répertoire de l'application (webViewBase).

Téléchargements (upload)