在 运行() 中重复两次
Twice repetition in run()
我希望以下代码块每秒写入一次 "Hello!"。但是它写了两次。我做错了什么?
handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
Log.d("message", "Hello!");
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(r, 1000);
runOnUiThread(r);
它写了两次,因为您在 UI 线程队列中发布了两次。一个与处理程序有关,另一个与可运行对象有关。
handler.postDelayed(r, 1000);
runOnUiThread(r);
根据你的要求把其中的一个去掉两个。在我看来,您只需要 handler
做一个简单的实现,创建一个TimerTask
Timer timer = new Timer ();
timer.schedule (new TimerTask () {
@Override
public void run () {
// Print your Hello here...
}
}, 0, 1000);
我希望以下代码块每秒写入一次 "Hello!"。但是它写了两次。我做错了什么?
handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
Log.d("message", "Hello!");
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(r, 1000);
runOnUiThread(r);
它写了两次,因为您在 UI 线程队列中发布了两次。一个与处理程序有关,另一个与可运行对象有关。
handler.postDelayed(r, 1000);
runOnUiThread(r);
根据你的要求把其中的一个去掉两个。在我看来,您只需要 handler
做一个简单的实现,创建一个TimerTask
Timer timer = new Timer ();
timer.schedule (new TimerTask () {
@Override
public void run () {
// Print your Hello here...
}
}, 0, 1000);