Android开发中解决Toast长时间显示问题
安卓中提示为我们提供了一种极为方便的提示功能,Toast能在用户误操作时提供良好的提示作用,但是另一方面由于自身机制的问题也带来了一些问题。用户在多次点击的时候就会一直显示
- 首先我们要明确为什么会导致这样的问题:
- 1.Toast实现其实是一个消息队列
- 2.所有的提示信息都按照错误的次数依次加入队列中
- 3.在原有信息没有消失之前后来的信息都会等待
- 4.所以会出现长时间显示
解决方法
分析了原因,我们发现如果让队列中只存在一个Toast对象不就能缩短显示时间,而我们只需要进行提示信息的更新即可。
- 我们需要一个对象,在后续调用Toast时对其进行判断,如果系统中存在则只对其的内容进行设置,不存在则新建一个Toast。
代码实现:
//设置Toast对象
private Toast mToast = null;
private void showTextToast(String msg) {
//判断队列中是否包含已经显示的Toast
if (mToast == null) {
mToast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT);
}else{
mToast.setText(msg);
}
mToast.show();
}