J'ai lu sur ce genre de problème ici, mais les réponses ne semblent pas fonctionner.
i montrer un La longueur du toast est courte. La longueur du pain grillé ne peut pas être modifiée car le texte est long. P> C'est ce que j'ai essayé dès maintenant: p> Cela n'a pas fonctionné. P> J'ai essayé: p> dans le Si je mets le existe-t-il un moyen de vérifier si un toast est affiché ou non? P> pour référence < / p> toast code> lorsque l'utilisateur clique sur un bouton. Lorsque l'utilisateur clique continuellement sur le bouton, le toast continue d'être affiché à nouveau et encore même lorsque l'utilisateur quitte l'activité. P>
OnStop () code>. Pour une raison quelconque, la méthode d'annulation ne fonctionne jamais. P>
.Cancel () code> Avant d'afficher l'application ... alors il y aurait un autre chèque NULL pour cela. Mais après cela, cela ne fonctionnait pas aussi. Je peux montrer une boîte de dialogue au lieu d'un pain grillé mais ce ne serait pas une solution. P>
4 Réponses :
Vous pouvez annuler des toasts individuels en appelant Annuler () sur l'objet Toast. AFAIK, il n'y a aucun moyen pour vous d'annuler tous les toasts exceptionnels, cependant. P>
Y a-t-il un moyen de vérifier si un toast est affiché ou non?
Cette réponse a exactement le même libellé que la réponse de Belware à cette question en double: Stackoverflow.com/Questtions/2755277/...
Essayez de garder l'horodatage du dernier toast et n'autorisez pas de nouveaux toasts jusqu'à ce qu'une période de délai d'expiration soit écoulée.
Quelque chose comme: p> Je voudrais 't vous soucier d'un seul toast coller autour d'une seconde après la sortie de l'utilisateur - il s'agit d'un comportement assez standard. P> P>
Y a-t-il un moyen de vérifier si un toast est affiché ou non?
C'est la seule méthode qui fonctionne pour moi. CECI EST LE CHEMIN!
au lieu d'annuler le toast. changer le texte. Par exemple Lorsque vous avez besoin d'un toast différent, utilisez P> t.setText("bye");
t.show();
Y a-t-il un moyen de vérifier si un toast est affiché ou non?
@Ciff Voir ceci .. Stackoverflow.com/Questions/ 5295765 / Toast-Numéro-in-android / ...
Le truc est de garder une trace du dernier code> toast code> qui a été montré et d'annuler celui-ci.
Ce que j'ai fait est de créer un Lorsque j'ai besoin de montrer une nouvelle, je annule d'abord la référence statique, avant de l'afficher le nouveau (et sauvez-le dans la statique). < / p> Voici le code complet du Ce code peut être trouvé dans mon gist githanub: p> Si vous voulez simplement savoir comment annuler les notifications lors de la sortie de votre application, vous trouverez beaucoup d'aide là-bas. Si vous avez des améliorations ou des suggestions, n'hésitez pas à la fourche et à vous contacter. C'est une très ancienne réponse, mais le code a été stable dans la production sur quelques applications depuis un certain temps. P> BTW - Cela devrait être un remplacement de gaspillage direct pour toast code> wrapper , qui contient une référence statique au dernier toast affichée. P>
BAST code> wrapper i Fabriqué - il imite assez des méthodes de toast pour que je puisse l'utiliser. Par défaut, le
vanter code> annulera le précédent, de sorte que vous n'accumulez pas une file d'attente de toasts en attente d'être affichée. P>
toast Code> strong> dans la plupart des cas d'utilisation. p>
merci. Il doit y avoir une autre alternative à annuler un toast. Si nous pouvions simplement connaître l'identification, le toast est affiché ...
@Ciff, il pourrait y avoir - mais vous essayez de faire référence à un nouvel objet, c'est pourquoi cela ne fonctionne pas. Ce code est One Way B> Pour faire ce que vous devez faire - Conservez une référence au toast code> Vous essayez d'annuler et appelez
toast.cancel () < / code> dessus.
@Ciff en regardant le code source Android, vous pouvez essayer d'appeler toast.geview () code> - mais vous avez toujours besoin d'une référence à cet objet, c'est-à-dire que vous devez garder une trace du dernier toast que vous avez affiché. En regardant le code source pourrait vous aider beaucoup dans ce cas, car c'est un code assez simple - il montre également que beaucoup de fonctionnalités de toast sont traitées par le système lui-même et ne sont pas accessibles par nous.
@Ciff m'a manqué que vous appeliez déjà toast.geview () code> mais vous l'appelez sur le mauvais objet .
Ne serait-il pas plus court et / ou plus agréable à sous-classement toast code>?
Peut-être que ce serait? ymmv
Je suis également arrivé avec une solution similaire. Et le précédent toast code> est annulé en effet. Mais voici quelques problèmes: 1) Lorsque vous essayez de toucher un bouton vraiment rapide, il semble que le système ne soit pas capable d'annuler
toast code> immédiatement - ils sont toujours en cours de file d'attente; 2) Dans mon cas, j'ai utilisé
toast code> avec vue personnalisée et l'enregistrement dans un Var STATIC crée une fuite de mémoire, pour résoudre ce problème, j'ai créé une activité de base avec le champ privé code> Toast code>.
Ne travaillez pas, j'ai trois toast à l'écran et tous montré l'un après l'autre. Cependant, il annule le précédent mais on a l'impression que tout pain grillé a été spectacle.
Onstop () Utilisez plutôt une pause () ....
Je suis confus à propos de ce concept. Onpause s'appelle avant Ontop. Mais lorsque l'activité change, elle s'appelle. Comment sont-ils différents et pour lesquels sont-ils utilisés? J'utilise l'Ontop pour arrêter tous les fils et boîtes de dialogue Async
Après un clic, faites le bouton invisible
Y a-t-il un moyen de vérifier si un toast est affiché ou non?