Иногда тост не исчезает и остается видимым даже после того, как я закрываю приложение - PullRequest
1 голос
/ 28 июня 2019

У меня есть очень простое Toast, показанное при определенных обстоятельствах:

if (!this.isFinishing()) {
    Toast.makeText(this, R.string.my_toast_message, Toast.LENGTH_LONG).show();
]

В большинстве случаев Toast отображается и исчезает, как предполагалось, но иногда остается всегда видимым, и даже если вы закрываете приложение, Toast не исчезает .

Это проблема, которая возникает спорадически, но когда это происходит, это очень раздражает, и единственный способ заставить Toast исчезнуть - это перезагрузить систему или сделать что-то, что может показать другой Toast любого приложения.

Это похоже на проблему самого Android, а не приложения, поскольку я видел эту проблему на разных устройствах и в разных приложениях, использующих Toast.

Мне интересно, есть ли какое-нибудь решение для предотвращения этой проблемы.

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

Если вы создаете тост в асинхронном вызове на основе этого ответа , то тосты могут застрять при вызове из потока, который завершается и уничтожается до того, как у тоста появится шанс исчезнуть.Если вы вызываете его в отдельном потоке, вы можете рассмотреть возможность вызова из основного потока.

0 голосов
/ 28 июня 2019

Тосты предназначены для уведомлений на уровне системы, поэтому они не исчезнут, даже если приложение будет убито.Если вы наберете show для нескольких тостов, они будут показываться один за другим.Если один и тот же тост вызывается несколько раз, создается впечатление, что тосту потребуется много времени, прежде чем он исчезнет.

Для уведомлений приложений рассмотрите возможность использования Snackbars.

Пожалуйста, обратитесь к этот вопрос .

...