每秒更新通知文本

时间:2014-04-22 12:06:58

标签: java android

我想每秒更新一次通知的文字。我写了这段代码

new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        // TODO Auto-generated method stub
        builder.setSmallIcon(R.drawable.ic_launcher);
        builder.setContentTitle("Text");
            builder.setContentText("value updated every 1 second");
        }

    }           
}, 1*1000);

但该值不会每1秒更新一次,但只会更新一次。为什么?我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

尝试使用Timers Handler ll一次调用。

Timer timer = new Timer();
        TimerTask task  = new TimerTask() {

            @Override
            public void run() {
                updateUI();
            }
        };
        timer.scheduleAtFixedRate(task, 0,1000);

将处理程序放在单独的方法

public void updateUI(){
        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                builder.setSmallIcon(R.drawable.ic_launcher);
                builder.setContentTitle("Text");
                    builder.setContentText("value updated every 1 second");

            }
        }, 1000);
    }

答案 1 :(得分:0)

他的代码启动一个每轮睡眠1000毫秒的线程。

Thread t = new Thread() {

  @Override
  public void run() {
    try {
      while (!isInterrupted()) {
        Thread.sleep(1000);
        runOnUiThread(new Runnable() {
          @Override
          public void run() {
            // update TextView here!
          }
        });
      }
    } catch (InterruptedException e) {
    }
  }
};

t.start();