Bonjour,
Je viens tout juste de m'apercevoir d'un petit problème avec un de mes AlertDialog.
Pour schématiser le problème, il y a deux activity et une AsyncTask.
A sa création, Activity1 lance une AsyncTask qui affichera un AlertDialog dans le onPostExecute.
Dans certains cas, il est possible que Activity1 lance Activity2 juste après avoir lancé l'AsyncTask (qui n'est pas terminée).
Le problème, c'est que l'AlertDialog va "s'afficher" dans l'Activity1 alors qu'on est dans l'Activity2 et, lorsque je retourne sur l'activity1 (finish sur Activity2), l'AlertDialog "essaye" de s'afficher : l'écran s'assombrit mais l'alert ne s'affiche pas. Impossible donc de fermer le dialog ou de faire autre chose, à moins d'appuyer sur le bouton "back" du téléphone mais ce n'est pas acceptable pour l'utilisateur.
Méthode utilisée pour afficher un AlertDialog :
Et voici un exemple d'appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public static void displayNeutralDialog(Context context, String titre, String message, String boutonName) { AlertDialog.Builder builder = new AlertDialog.Builder(context); if (titre != null) { builder.setTitle(titre); } if (message != null) { builder.setMessage(message); } builder.setNeutralButton(boutonName, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.show(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part StaticTools.displayNeutralDialog(this.context, R.string.common_dialog_error, this.msgError, R.string.common_dialog_close);
Existe t'il un moyen pour éviter ce problème ?
Merci d'avance.
Partager