Toast使用起来确实方便,但是因为其特点,也导致频繁的弹出,无法及时消失,并且长时间累加,
影响用户体验,造成非常多的问题;
下面的工具类可以直接粘贴使用,具体的调用方法是:
新建Toast:
ToastUtil.showToast(this,"",LENGTH_SHORT);
消除Toast:
ToastUtil.missToast(this);
注解也非常详细啦!
/**
* 自定义Toast类,避免Toast显示延迟和线程池累加,用context统一管理生命周期,进行替换
* 使用时注意context以及this的上下文关系对应
* by:Naive_lh
* 2018/10/31
***/
public class ToastUtil {
private static Toast myToast;
public static void showToast(Context context, String msg, int length) {
if (myToast == null) {
myToast = Toast.makeText(context, msg, length);
} else {
myToast.setText(msg);
}
myToast.show();
}
//利用上下文统一管理Toast生命周期,补充该方法后可在调用后直接miss
public static void missToast(Context context) {
if (myToast!=null){
myToast.cancel();//仅仅为隐藏,如果不调用下面myToast=null在同一界面使用出现首次点击Toast不能正常弹出的问题
myToast=null;
}
}
}