解决Android 中Toast大量弹出,显示框长时间不消失问题
通常我们会遇到需要弹出多个Toast的场景,由于Toast的显示逻辑是 等上一个Toast显示结束后,才会显示下一个,因此,当我们有多个Toast要显示的时候,就会造成Toast显示界面长时间不消失的问题;其实我们可以将Toast进行简单封装就可以解决这个问题。
封装后的Toast工具类如下:
public class ShowToastUtils {
private static Toast mToast;
public static void showToast(Context mContext, String text, int duration) {
if (mToast == null) {
mToast = Toast.makeText(mContext, text, duration);
} else {
mToast.setText(text);
mToast.setDuration(duration);
}
mToast.show();
}
public static void showToast(Context mContext, int resId, int duration) {
showToast(mContext, mContext.getResources().getString(resId), duration);
}
}
代码非常简单,就不做过多的解释了,其调用方法也非常简单,参数和Toast.makeText()的相同,例子如下:
ShowToastUtils.showToast(context, R.string.toast111, Toast.LENGTH_LONG);
或者
ShowToastUtils.showToast(context, "hello", Toast.LENGTH_LONG);