我对Android平台非常新,因此我有一个非常基本的问题,我正在尝试制作一个简单的第二个计时器,所以这里是我写的代码。我不知道为什么但是方法运行永远不会被执行:
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 :(得分:4)
使用像这样的Timer创建一个新线程,并从一个不是主线程的线程更新GUI不是一个好主意。 更好的方法是在此链接中报告的方法:http://developer.android.com/resources/articles/timed-ui-updates.html
希望它有所帮助!
答案 1 :(得分:1)
我想这是因为你没有在UI线程中工作。阅读有关UI线程here。
您可能需要考虑使用AsyncTask来处理所有UI线程同步化内容;)
答案 2 :(得分:0)
像这样更改您的代码
Timer tmr = new Timer();
tmr.schedule(new TimerTask()
{
@Override
public void run() {
Log.w("this", "is 1");
}
},1000, 1000);