做android开放经常会用到Toast,但是有个影响用户体验的问题,当实现Toast功能处,用户多次点击时候,会不停的弹出Toast,哪怕是已经跳转进入下一个界面了,Toast仍然会不停出现,直至全部展示完为止,这样的体验非常不好,所以就想着如何才能解决这个问题呢,第一想到的就是百度,看了网上别人写的使用单例模式解决这个问题,特来记录下。下面上代码:
import android.content.Context;
import android.widget.Toast;
/**
* ToastUtils 利用单例模式,解决Toast重复弹出的问题
*/
public class ToastUtils {
private static ToastUtils mToastUtils;
private static Toast mToast;
private ToastUtils(Context context){
if (null == mToast){
mToast = Toast.makeText(context.getApplicationContext(),"",Toast.LENGTH_LONG);
}
}
public static ToastUtils getInstance(Context context) {
if (mToastUtils == null){
mToastUtils = new ToastUtils(context.getApplicationContext());
}
return mToastUtils;
}
public void showShortToast(String mString){
if (mToast == null){
return;
}
mToast.setText(mString);
mToast.setDuration(Toast.LENGTH_SHORT);
mToast.show();
}
public void showLongToast(String mString){
if (mToast == null){
return;
}
mToast.setText(mString);
mToast.setDuration(Toast.LENGTH_LONG);
mToast.show();
}
}
上面为Toast工具类,然后在用的地方按照下面方法调用就行了:
ToastUtils.getInstance(this).showLongToast("是否重复");