Cette partie du projet va apprendre à mettre en place une tâche asynchrone (AsyncTask) ainsi que de récupérer des données par connexion HTTP.
En développement Android, une tâche asynchrone est nécessaire pour réaliser une connexion HTTP pour éviter de bloquer l'application le temps de récupérer les données.
On veut exécuter notre tâche asynchrone depuis notre activité principal, MainActivity :
Ensuite on crée notre classe contenant la tâche asynchrone, BaskTask.java dans le package com.androiddev.listviewjson :
Par défaut, AsyncTask implémente les fonctions onPreExecute(), doInBackground(), onProgressUpdate() et onPostExecute(). Toutes ses fonctions son appelées à différents moment de l'exécution de la classe :
Remarque : On a dut passer le Context de l'Activity en paramètre du constructeur de BackTask pour pouvoir afficher les messages de début et de fin d'exécution.
La connexion HTTP doit se réaliser dans un thread séparé du principal depuis la version 4 d'Android. Cette limitation est un bien pour l'expérience utilisateur.
Dans la tâche asynchrone on crée une fonction qui va récupérer notre fichier JSON :
Explication :
La fonction de récupération de donnée sera appelé depuis la fonction doInBackground :