在某些情况下,我看到一个非常简单的Toast
:
if (!this.isFinishing()) {
Toast.makeText(this, R.string.my_toast_message, Toast.LENGTH_LONG).show();
]
在大多数情况下,Toast
都会显示并逐渐消失,但是有时始终保持可见状态,即使您终止了该应用,Toast
也不会消失。
这是一个偶尔发生的问题,但是当它发生时,这非常烦人,使Toast
消失的唯一方法是重新启动系统或执行可能显示另外Toast
任何应用程序。
这似乎是Android本身而不是App的问题,因为我已经看到此问题发生在使用Toast
的不同设备和不同应用上。
我想知道是否有一些解决此问题的方法。
答案 0 :(得分:0)
吐司是系统级的通知,因此即使该应用被终止,它们也不会消失。如果您致电show
祝酒,那么它们将一个接一个地显示。如果多次调用同一个吐司,则会给人留下吐司要花很长时间才能消失的印象。
对于应用程序通知,请考虑改用Snackbars
。
请参阅this question。
答案 1 :(得分:0)
如果要基于this answer在异步调用中创建Toast,则从结束的线程调用Toast时,Toast可能会卡住,并在Toast有机会消失之前被杀死。如果要在单独的线程中调用它,则可能需要考虑从主线程调用它。