Отмените тост на Android до его появления

В моем приложении отображается Toast, когда происходит определенное действие. Однако, если два из этих действий происходят в непосредственной близости, я бы хотел отказаться от отображения первого Toast, вместо этого отобразив только второй. Я думал, что Toast.cancel() выполнит трюк, но то, что он делает, просто спрячет первый тост; второй отображается только после того, как первый из них все равно будет отображаться.

Пример кода:

Toast toast1 = Toast.makeText(parentActivity, "Test1", Toast.LENGTH_SHORT);
Toast toast2 = Toast.makeText(parentActivity, "Test2", Toast.LENGTH_SHORT);

toast1.show();
toast2.show();

toast1.cancel();

Второй Toast появляется только после короткого ожидания (длина короткой продолжительности). Это действительно происходит, даже если я вызываю toast2.cancel().

Ответ 1

Я не уверен, что это сработает, но, возможно, попробуем отменить оба из них, а затем снова показать второй.

Ответ 2

Toast.makeText(context, text, duration) возвращает объект Toast. Вызовите cancel() метод для этого объекта, чтобы отменить его.

Пример:

Toast mToastText = Toast.makeText(getApplicationContext(), "Hello StackOverFlow!", Toast.LENGTH_SHORT);
 mToastText.cancel();