I am currently testing an Android application and in two instances, once when liking/unliking a video and another time when there is no internet connection and the refresh button is pressed, the user gets the ability to 'stack' Toasts. E.g. I press like and immediately dislike (same button), first the Toast for liking and then the Toast for disliking is displayed. Now if I do that rapidly even more Toasts are shown after the other which then takes #-of-clicks * ToastLength time to show and the Toasts are still shown even if I switch to a different page.

Now my question, is this standard Android user experience? What are the alternatives? Is it good practice to replace the text of the current Toast to fit the last action?


Toasts which indicate mutually exclusive actions (eg checkbox on/off selections or like/dislike) should never appear onscreen at the same time

The presence of conflicting statuses can cause cognitive dissonance or outright confusion for users. The vertical stacking order and chronological order of appearance isn't enough for the user to reliably interpret the conflicting toasts.

So irrespective of whether you decide to persist toasts between screens or how long you want to show them, conflicting toasts should replace each other. I would suggest reanimating the toast replacement rather than just replacing text, because users often don't notice pure text replacement and it's nice to get consistent feedback on actions.


First of all, Yes, it is the "default" (and kind of annoying) behaviour of Android. In your situation, if you click like/dislike 50 times, the Toasts will stack and will continue to show even if the user closes the application (as they are asynchronous).

The best and simplest approach would be to never stack toasts, unless the new toast is a very important one (usually Toasts are descriptions of what you just did, and can be ignored fo the sake of user experience). It isn't the foolproof solution (of course, the user won't get informed about every task it has done) but it would prevent a very bad user experience and prevent users from thinking your app is "misbehaving" (Think of an app which keeps showing you messages even when you have closed it, I would even uninstall an app because of this annoying behaviour).

So technically, instead of creating a new instance every time, just use a universal instance of Toast and change the text anytime you want to show a toast.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.