Téléchargements serveur -> Application Android (download) | ![]() |
Téléchargements Application Android -> serveur (upload) | ![]() |
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 :
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).