我想每秒更新一次通知的文字。我写了这段代码
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秒更新一次,但只会更新一次。为什么?我怎么能这样做?
答案 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();