有时 Toast 不会消失,即使在我终止应用程序后仍然可见



我在某些情况下显示了一个非常简单的Toast

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

大多数时候, Toast显示并如前所述逐渐消失,但有时仍然可见,即使您终止应用程序, Toast 也不会消失

这是一个偶尔出现的问题,但是当发生时,它非常烦人,使Toast逐渐消失的唯一方法是重新启动系统或做任何可以显示任何应用程序的Toast的事情。

这看起来像是Android本身的问题,而不是应用程序,因为我已经看到此问题发生在不同的设备和使用Toast的不同应用程序上。

我想知道是否有一些解决方法可以防止此问题。

吐司是系统级别的通知,因此即使应用程序被杀死,它们也不会消失。如果您致电show进行几个吐司,他们将接一个地显示。如果多次称呼相同的吐司,则会给人一种印象,即吐司需要很长时间才褪色。

对于应用通知,请考虑使用Snackbars

请参阅此问题。

如果您要在异步呼叫中创建吐司,基于此答案,吐司可能会在呼叫的线程中被打电话而被卡住。如果您在单独的线程中调用它,则可能需要考虑从主线程调用它。

最新更新