通常我们使用Toast类时,都是使用其makeText实例化Toast然后调用其show方法,但Toast并不是一个单例类,每次调用makeText方法实例化时都会新建一个Toast对象,这就导致在连续显示Toast消息时,最新的toast消息总是不能及时显示,必须要等到前面的消息显示完之后才能显示,可以通过写一个工具类来解决这个问题,具体代码如下:
public class ToastUtils {
private ToastUtils( ){
}
public static void showToast( Context context, String toastInfo ){
if( null == context || TextUtils.isEmpty( toastInfo ) ){
return;
}
if( null == mToast ){
mToast = Toast.makeText( context, toastInfo, Toast.LENGTH_LONG );
}else{
mToast.setText( toastInfo );
}
mToast.show( );
}
public static void hideToast( ){
mToast.cancel( );
}
private static Toast mToast = null;
}
整个工程,toast只实例化一次,更新toast信息时相当于重新设置其显示文本,这样就不会因为每次都实例化一个toast对象导致toast消息不能实时显示了。