平时我们用的Toast都是向下面这样用的:
Toast.makeText(context, "content", Toast.LENGTH_SHORT).show();
其实,这样是有不太好的地方的。比如,Toast的触发事件是按钮点击,那么,如果反复点击按钮,
每点击一次Toast就会触发一次,每次都会重新New一个Toast出来,这样其实很浪费资源。参考了
郭神的文章,可以将Toast进行简单的封装,来提升用户体验,亲测代码如下:
/**
* Toast封装
*/
public class ToastUtils {
private static Toast toast = null;
@SuppressLint("ShowToast")
public static void show(Context context, String text) {
try {
if (toast != null) {
toast.setText(text);
} else {
toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
}
toast.show();
} catch (Exception e) {
e.printStackTrace();
//解决在子线程中调用Toast的异常情况处理
Looper.prepare();
Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
Looper.loop();
}
}
}