Поведение тоста на уровне API 28? - PullRequest
1 голос
/ 21 января 2020

При тестировании своих приложений я заметил, что поведение Toast отличается в API 28

Следующий код ничего не отображает на Android 9, в то время как на старых устройствах он показывает сообщение

Toast toast = Toast.makeText(this,"TEST",Toast.LENGTH_SHORT);
toast.show();
toast.show();

Можно ли преодолеть это и фактически отобразить тост, когда несколько событий происходят за короткий промежуток времени?

1 Ответ

0 голосов
/ 22 января 2020

Вы можете использовать обратный отсчет, это работает до 100 мсек c в моем тесте. Ниже 100 мсэ c тост не появляется. Если вам нужно быстрее, подкласс Toast ИМХО.

public static void showToast(Context context, String message, int duration) {
    Toast toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);

    new CountDownTimer(duration, duration) {
        public void onTick(long millisUntilFinished) {

        }
        public void onFinish() {
            toast.cancel();
        }
    }.start();

    toast.show();
}
...