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可以在线程中使用。
本文地址:https://blog.csdn.net/wxj280306451/article/details/108979696