如果使用Toast.makeText(context,msg,duration).show()吐丝消息,那么当出现连续吐丝的情况时,无法取消掉上一个吐丝消息。所以当项目中有连续弹出Toast的情况,应避免使用Toast.makeText()这种方法。
public class ToastUtil {
private static ToastUtilinstance;
private Toasttoast;
private Viewview;
private ToastUtil(Context context){
toast =new Toast(context);
view = Toast.makeText(context,"",Toast.LENGTH_SHORT).getView();
toast.setView(view);
}
public static ToastUtilgetInstance(Context context){
if(instance==null){
instance =new ToastUtil(context);
}
return instance;
}
public void show(String msg){
toast.setText(msg);
toast.setDuration(Toast.LENGTH_SHORT);
toast.show();
}
}
注意:使用单例时切记传入的上下文必须是Applicantion的上下文,不然会导致内存泄露。
网友评论