吐司多次出现

Gau*_*ora 4 android toast

在我的应用程序中,在按钮上单击我创建一个Toast as -

Toast.makeText(context,"Please Enter Username",Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

但是当有人点击按钮5-6次并关闭应用程序,或者进入另一个屏幕时,它仍然会在另一个屏幕上继续显示Toast一段时间.我见过很多相同的解决方案.

我试过了 -

toast = Toast.makeText(LoginActivity.this, message, Toast.LENGTH_SHORT);
        toast.show();
Run Code Online (Sandbox Code Playgroud)

并取消了这个吐司 -

onPause(){

if(toast!=null){
toast.cancel();

}
Run Code Online (Sandbox Code Playgroud)

同样的 onDestroy()

我希望当任何人点击按钮5-6次并离开应用程序或该活动时,toast消息应该消失.或建议任何替代解决方案.

Sam*_*Sam 16

但它给了我一个力量接近 - 使用Toast.makeText()从未调用Toast.

您可以创建一个字段变量和方法,一次只显示一个Toast:

Toast toast;

public void displayToast(String message) {
    if(toast != null)
        toast.cancel();
    toast = Toast.makeText(context, message, Toast.LENGTH_SHORT);
    toast.show();
}
Run Code Online (Sandbox Code Playgroud)

并在onPause()退出时取消任何现有的Toast:

protected void onPause() {
    if(toast != null)
        toast.cancel();
    super.onPause();
}
Run Code Online (Sandbox Code Playgroud)

现在,无论何时想要显示Toast,只需调用:

displayToast("Please Enter Username");
Run Code Online (Sandbox Code Playgroud)