//注意:该方法创建Toast对象的时候时长因该设置为 Toast.LENGTH_LONG,因为该他的时长就是3秒,与下面的延时时间对应
//cnt:需要显示的时长,毫秒
private void showMyToast(final Toast toast, final int cnt) {
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
toast.show();
}
}, 0, 3000);//每隔三秒调用一次show方法;
 
new Timer().schedule(new TimerTask() {
@Override
public void run() {
toast.cancel();
timer.cancel();
}
}, cnt );//经过多长时间关闭该任务
}
 
-----------------------------------------------------------华丽的分割线---------------------------------------------------------
 
Demo:

public class MainActivity extends Activity {

private Toast toast1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

toast1 = Toast.makeText(MainActivity.this, "显示完成了", 0);

}


public void click(View v)
{
Toast toast = Toast.makeText(MainActivity.this, "显示十秒钟", 1);
showMyToast(toast, 10000);

Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
toast1.show();
}
}, 10000);

}

private void showMyToast(final Toast toast, final int cnt) {
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
toast.show();
}
}, 0, 3000);
new Timer().schedule(new TimerTask() {
@Override
public void run() {
toast.cancel();
timer.cancel();
}
}, cnt );
}

}