J'ai créé une tâche asynchrone pour appeler mon serveur afin d'obtenir des données de la base de données.
Je dois traiter le résultat renvoyé par l'appel du serveur http. De mon activité j'appelle la tâche asynchrone dans beaucoup d'endroits. donc je ne peux pas utiliser la variable membre pour accéder au résultat. y a-t-il un moyen de faire?Comment renvoyer la valeur d'une tâche asynchrone dans android
public Result CallServer(String params)
{
try
{
new MainAynscTask().execute(params);
}
catch(Exception ex)
{
ex.printStackTrace();
}
return aResultM;//Need to get back the result
}
private class MainAynscTask extends AsyncTask<String, Void, Result> {
@Override
protected Result doInBackground(String... ParamsP) {
//calling server codes
return aResultL;
}
@Override
protected void onPostExecute(Result result) {
super.onPostExecute(result);
//how i will pass this result where i called this task?
}
Pourquoi ne pas appeler une méthode qui gère la valeur comme indiqué dans http://stackoverflow.com/a/9458274/1021640? –
éventuellement doublon de [Async] (http://stackoverflow.com/questions/9458258/return-value-from-async-task-in-android) et [Async And] (http://stackoverflow.com/questions/5457493/AsyncTask-valeur de retour) –
La bonne façon est d'utiliser des protocoles [] (http://stackoverflow.com/a/26820666/2835520) – IgniteCoders