Android Toast 防止重复弹出

如果有这样一个场景,用户不停的狂点某一个按钮,而这时这个按钮刚好就会触发一个Toast弹框,是不是就会出现,Toast不消失的现象。如果这个时候你是这样的现象,那么你的Toast一定是这样写的

Toast.makeText(CrashApplication.getApplication(), text, duration).show();

 

这样写就会造成Toast重复弹框的问题。

现在有这样一个工具类,可以防止Toast重复弹框,直接上代码

import android.os.Handler;

import android.os.Looper;

import android.widget.Toast;

 

import com.bsit.qm702.CrashApplication;

 

 

/**

 * toast显示类,可以在子线程直接调用

 * 封装的Toast类

 */

public class ToastUtil {

    private static Toast toast;

 

    public static Handler mHandler = new Handler(Looper.getMainLooper());

 

    public static void showToast(String text) {

        showToast(text, Toast.LENGTH_SHORT);

    }

 

    public static void showToast(final String text, final int duration) {

        if (Looper.myLooper() == Looper.getMainLooper()) {

            show(text, duration);

        } else {

            mHandler.post(new Runnable() {

                @Override

                public void run() {

                    show(text, duration);

                }

            });

        }

    }

 

    private static void show(String text, int duration) {

        if (toast != null) {

            toast.cancel();

        }

        toast = Toast.makeText(CrashApplication.getApplication(), text, duration);

        toast.show();

    }

 

}

 

 

 

而且这个Toast可以在线程中使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值