睡眠功能不起作用

时间:2012-06-25 11:05:24

标签: android andengine

我希望在可更改的文本中显示1到100。我喜欢使用sleep()函数,因此看起来它从1到100增加。我的代码是

for(int i= 0;i<100;i++) {
    scorelevel.setText(String.valueOf(i));
    try{
        Thread.sleep(1000);
    }catch (InterruptedException e) {
        e.printStackTrace();
    }
}

但它没有正确显示。任何帮助或建议表示赞赏。

4 个答案:

答案 0 :(得分:5)

不要阻止UI线程,而是使用AsyncTask

答案 1 :(得分:0)

使用TimerTimerTask执行任何基于时间的任务。

答案 2 :(得分:0)

您可以使用runOnUiThread启动计数器,将textView更新为:

private boolean mClockRunning=false;
private int millisUntilFinished=0;
public void myThread(){
            Thread th=new Thread(){
             @Override
             public void run(){
              try
              {
               while(mClockRunning)
               {
               Thread.sleep(1000L);// set time here for refresh time in textview
               YourCurrentActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                 // TODO Auto-generated method stub
                     if(mClockRunning)
                     {
                     if(millisUntilFinished==100)
               {
               mClockRunning=false;
               millisUntilFinished=0;
                }
                else
                {
               millisUntilFinished++;
               scorelevel.setText(String.valueOf(millisUntilFinished));//update textview here

               }
             }

            };
          }
              }catch (InterruptedException e) {
            // TODO: handle exception
             }
             }
            };
            th.start();
           }

答案 3 :(得分:0)

您也可以使用TimerTasklink)。