2010-07-24 5 views
1

Je ne peux pas arrêter Toast messages qui continuent même lorsque j'ai détruit l'activité dont ils proviennent. Ils sont en attente et continuer encore et encore et encore quand je suis dans l'activité suivante.Comment faire pour arrêter les messages et les activités toast

+1

pourrait nous montrer le code comment avez-vous souleviez les messages Toast plus important pourquoi vous avez tant d'entre eux? – Pentium10

+0

Cette méthode ditHello est appelé plusieurs fois et le toast continue juste encore et encore. Je pense que ça continue même quand l'activité est détruite mais je ne suis pas sûr à 100% du degré de fermeture de l'activité. private void sayHello() { // Sélectionne un hello aléatoire. int helloLength = HELLOS.length; String hello = HELLOS [RANDOM.nextInt (helloLength)]; // code makeToast Toast.makeText (getApplicationContext(), Bonjour, Toast.LENGTH_LONG) .show(); } – Droid

Répondre

1

Vous devrez garder une trace de vos Toasts. Gardez vos objets Toast autour et ensuite sur onPause ou tout ce que vous appelez en boucle en appelant toast.cancel(). Cela va fermer ce toast. Cela permettra également de forcer la fermeture forcée de vos messages Toast à l'extérieur de votre application.

0

Les messages Toast sont conçus pour informer l'utilisateur d'un message important. C'est la raison pour laquelle ils sont mis en file d'attente et montrés de toute façon. Les messages Toast n'étaient pas destinés à être envoyés en grand nombre. (les grands nombres étant supérieurs à 1) Si vous avez tellement d'informations à transmettre à l'utilisateur, vous devriez le faire d'une manière différente. Comme on dit dans la boulangerie, c'est comme ça que le biscuit s'effondre.

2

Vous pouvez créer un objet de type toast et l'arrêter dans la méthode onpause(), mais le problème concerne le message toast en file d'attente. Après stoping vous grillez objet OnPause encore u peut voir un message toast mise en œuvre:

Toast showToastMessage; 
showToastMessage=Toast.makeText(this.this, "Toast message", Toast.LENGTH_LONG); 
showToastMessage.show(); 

@Override 
     protected void onPause() { 
       super.onPause(); 
       if(showToastMessage!=null) 
       { 
       showToastMessage.cancel(); 
       } 
} 
Questions connexes