2012-02-23 57 views
2

我是非常新的Android平台,因此Java所以我有一个很基本的问题,我想做一个简单的第二个计时器,所以这里是我写的代码。我不知道为什么,但该方法运行永远不会被执行:基本的第二个计时器的实现

 Timer tmr = new Timer(); 
     tmr.schedule(new TimerTask() 
     { 

      @Override 
      public void run() { 
       TextView txt = (TextView) findViewById(R.id.txtLoading); 
       counter++; 
       txt.setText(counter); 

      } 

     }, 1000); 

LE:其实它看起来像它执行,但GUI没有更新......为什么呢?

+0

您的代码将只运行一次,你需要添加一个在计划方法的延迟之后的一段时间。 – L7ColWinters 2012-02-23 13:24:30

+0

哦也counter是一个整数,如果你做txt.setText(整数)它寻找的资源,而不是铸造它。你需要做String.valueOf(++ counter); – L7ColWinters 2012-02-23 13:26:12

回答

1

我想这是因为你不在你的UI线程中工作。阅读UI线程here

你可能要考虑使用的AsyncTask这需要的所有UI线程syncronisation东西照顾;)

0

改变你这样的代码

Timer tmr = new Timer(); 
     tmr.schedule(new TimerTask() 
     { 

      @Override 
      public void run() { 
       Log.w("this", "is 1"); 
      } 

     },1000, 1000);