Android:在某个特定的时间间隔更新textview

时间:2011-08-08 21:32:46

标签: android

您好我试图在每个特定时间更新textview,但它只更新第一个然后强制关闭,这里是代码:

try {
           timer = new Timer();
           timerTask = new TimerTask() {
              @Override
              public void run() {
             //Download file here and refresh
                  updateRecSMSCount(count);
              }
           };
        timer.schedule(timerTask,0, 3000);
        } catch (IllegalStateException e){

        }
void updateRecSMSCount(Integer count)
{
    TextView numRecSMS=(TextView)findViewById(R.id.numRecSMS);
    numRecSMS.setText(count.toString());

}

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

您无法从创建UI的线程以外的其他线程访问UI。计时器任务在不同的线程中运行。您可以在此处找到解决方案:Updating the UI from a Timer

最简单的修复是:

void updateRecSMSCount(Integer count)
{
    final TextView numRecSMS=(TextView)findViewById(R.id.numRecSMS);

    numRecSMS.post(new Runnable() 
    {
        @Override
        public void run() 
        {
            numRecSMS.setText(count.toString());
        }
    });
}

答案 1 :(得分:1)

您无法从其他线程更新视图的内容。你需要查看Handler - 类。请参阅thisthis