Supposant J'utilise le AsycTask
(appelé A) suivant pour envoyer des données sur internet:AsyncTask appels imbriqués
private class A extends AsyncTask<Void, Void, Void>{
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pd = ProgressDialog.show(context, "Notification", "Sending message...");
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
sendMessage();
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if(pd!=null && pd.isShowing())
pd.dismiss();
}
}
A l'intérieur du doInbackground
est appelé ma méthode sendMessage(). Je ne vais pas entrer dans les détails de cette méthode, il suffit d'imaginer que cette méthode exécute un Thread
(supposons qu'il s'appelle B
).
Ainsi, la question est:
Le code à l'intérieur du onPostExecute()
de AsyncTask
A sera exécutée après la fin de la Thread
B?
Sinon, comment rendre possible que onPostExecute ne soit exécuté que lorsque le AsyncTask
dans le sendMessage() sera terminé?
Vous avez raison, je me contentais de la méthode join(), et cela fonctionne pour moi. – GVillani82