发送一些" Toast"间隔2秒

时间:2011-06-05 10:32:52

标签: android wait toast

我需要在它们之间显示间隔2秒的4个“吐司”。

我如何以这样的方式执行此操作,即他们等待彼此以及程序本身等待直到最后一个显示?

2 个答案:

答案 0 :(得分:1)

只需使用处理程序。

handler有一个名为sendMessageDelayed的方法(Message msg,long delayMillis)。

只需按2秒的时间间隔安排短信。

这是一个示例代码。

    int i=1;
    while(i<5){

    Message msg=Message.obtain();
    msg.what=0;
    hm.sendMessageDealayed(msg, i*2);
i++;
    }

现在这段代码会在每2秒后调用handler的方法handleMessage。

这是你的处理程序

Handler hm = new Handler(){

public void handleMessage(Message msg)
{
//Toast code.
}
};

你完成了。

感谢。

答案 1 :(得分:1)

处理程序绝对是要走的路,但我只是postDelayed而不是处理空消息。

同样扩展Toast并创建一种显示更长时间的方法很不错。

示例代码:

// make sure to declare a handler in the class
private final Handler mHandler = new Handler();

// The method to show longer
/**
  * Show the Toast Longer by repeating it.
  * Depending upon LENGTH_LONG (3.5 seconds) or LENGTH_SHORT (2 seconds)
  *  - The number of times to repeat will extend the length by a factor
  * 
  * @param number of times to repeat
  */
    public void showLonger(int repeat) {
    // initial show
    super.show();

    // to keep the toast from fading in/out between each show we need to check for what Toast duration is set
    int duration = this.getDuration();

    if (duration == Toast.LENGTH_SHORT) {
        duration = 1000;
    } else if (duration == Toast.LENGTH_LONG) {
        duration = 2000;
    }

    for (int i = 1; i <= repeat; i++) {
        // show again
        handler.postDelayed(new Runnable() {

            @Override
            public void run() {
                show();
            }
        }, i * duration);
    }
}