Bonjour,
Je débute en android et j'ai voulu pour tester me faire une application qui récupère des données via un objet json depuis une URL.
J'ai utilisé la classe AsyncTask de cette façon :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class BackGroundTask extends AsyncTask<String, Integer, String> {
String data = null;
@Override
protected String doInBackground(String... url) {
try{
data = downloadUrl(url[0]);
}catch(Exception e){
Log.d("Background Task", e.toString());
}
return data;
}
/** Méthode pour télécher des données json depuis une url */
public String downloadUrl(String strUrl) throws IOException{...}
} |
et dans mon MainActicity.java j'ai appelé ma class BacGroundTask pour récupérer mes données json :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class MainActivity extends Activity {
String url = "http://uneUrl";
AsyncTask<String, Integer, String> wallpapersTask;
String wallpaperItems = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BackGroundTask task = new BackGroundTask();
wallpapersTask = task.execute(url);
//...etc
} |
Le problème est que je n'arrive pas à utiliser l'objet wallpapersTask. Il a un type AsyncTask que je n'arrive pas à exploiter. Par exemple j'ai voulu faire :
String result = wallpapersTask.ToString();
Mais ça ne marche pas comme ça. Par contre dans la variable data retournée par la méthode doInBackground, quand je met un point d'arrêt dessus je vois bien mon tableau de données JSON qui est bien récupéré.
Je me suis renseigné et je pense qu'il me manque des méthodes (peut être ?) à implémenter dans la classe BackGroundTask... Mais je n'ai pas bien compris.
Est ce que quelqu'un pourrait m'éclairer sur le sujet, dans le but de récupérer dans un objet JSON ou un String mes données ?
Merci d'avance pour votre aide.
Partager