2010-08-23 5 views
1

J'ai une application android ayant un AlertDialog avec les boutons OK et Annuler. Lorsque la boîte de dialogue s'affiche sans appuyer sur le bouton OK ou Annuler, appuyez simplement sur le bouton Accueil de l'appareil. L'écran d'accueil s'affiche. Maintenant, ouvrez une autre application suppose Camera. Prenez une photo ou une vidéo. Maintenant, sortez de l'application Camera. Maintenant, ouvrez mon application android et étonnamment le alertdialog ont disparu. Pourquoi?AlertDialog disparaît après le changement d'activité

+0

J'ai essayé de reproduire la situation sur un HTC Hero, mais je ne pouvais pas. Ma boîte de dialogue est encore visible même si je mets mon application en arrière-plan et lance l'application appareil photo, et que de revenir à l'application. Quel téléphone utilisez-vous? Pourriez-vous nous fournir un code sur la façon dont vous créez votre boîte de dialogue? –

+0

Après avoir poussé l'application exécuter l'application de la caméra et prendre une photo puis appuyez sur le bouton retour pour revenir. Maintenant, allez à votre application et voir la boîte de dialogue apparaît ou non. – gsmaker

Répondre

2

Je suppose que vous créez cette méthode AlertDialog onCreate(). D'abord, vous devriez lire sur le Activity Lifecycle.

Et ce qui se passe est que lorsque vous allez à une autre application, l'activité va à la méthode onPause, qui nettoie un peu. Appelé lorsque le système est sur le point de commencer à reprendre une activité précédente. Ceci est généralement utilisé pour commuter des modifications non sauvegardées sur des données persistantes, arrêter des animations et d'autres choses qui consomment du CPU, etc. Les implémentations de cette méthode doivent être très rapides car l'activité suivante ne sera pas reprise avant que cette méthode ne retourne. Puis, parce que vous revenez à l'application, elle appelle la méthode onResume, qui ne crée plus votre boîte de dialogue.

1

Si vous souhaitez afficher cette fenêtre au démarrage de l'application puis écrire ce code dans la méthode

onResume() 

, il affichera dialogue chaque fois que l'utilisateur revient à cet écran. Ou vous pouvez gérer son état dans

onPause() 
Questions connexes