handler.postDelayed()没有执行

时间:2016-01-28 00:39:40

标签: android sleep android-handler

我希望在一段时间后显示一些文字。

我最初使用Thread.sleep()开始。它只是在立即执行代码之前暂停。

mTextView.setText("3");
try{
    Thread.sleep(500);
}catch(InterruptedException e){
    e.printStackTrace();
}
mTextView.setText("2");

但它会暂停500毫秒,然后显示" 2"。 它永远不会显示" 3"。

所以,我换了一个处理程序。

mTextView.setText("3");
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    public void run() {
        mTextView.setText("2");
    }
}, 500);

但出于某种原因,它会跳转到显示" 2,"没有停顿。似乎处理程序没有延迟。

为什么以及如何延迟?

1 个答案:

答案 0 :(得分:0)

试试这个 -

    Handler handler = new Handler();
      for(int i=0;i<2;i++){
        handler.postDelayed(new Runnable() {
            public void run() {
                mTextView.setText(""+(i+2));
            }
        }, 500*i);
}