Отправить количество тостов с интервалом в 2 секунды - PullRequest
1 голос
/ 05 июня 2011

Мне нужно отобразить 4 "тоста" с интервалом в 2 секунды между ними.

Как мне сделать это так, чтобы они ждали друг друга и чтобы сама программа ожидала до последнего изих отобразил?

Ответы [ 2 ]

1 голос
/ 13 апреля 2012

Обработчики - определенно лучший способ, но я бы просто отправил сообщение вместо обработки пустого сообщения.

Также неплохо расширить 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);
    }
}
1 голос
/ 05 июня 2011

просто используйте обработчики.

обработчик имеет метод 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++;
    }

теперь этот код будет вызывать метод handleMessage обработчика через каждые 2 секунды.

вот ваш обработчик

Handler hm = new Handler(){

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

и высделанный.

Спасибо.

...