Android 在run()中重复两次

Android 在run()中重复两次,android,runnable,Android,Runnable,我希望下面的代码块每秒写一次“Hello!”。但它写了两次。我做错了什么 handler = new Handler(); final Runnable r = new Runnable() { public void run() { Log.d("message", "Hello!"); handler.postDelayed(this, 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线程队列中发布了两次。一个带有处理程序,另一个带有runnable

handler.postDelayed(r, 1000);
runOnUiThread(r);

根据你的要求,去掉其中的一个。在我看来,您似乎只需要
处理程序

它会写入两次,因为您在UI线程队列中发布了两次。一个带有处理程序,另一个带有runnable

handler.postDelayed(r, 1000);
runOnUiThread(r);

根据你的要求,去掉其中的一个。在我看来,您似乎只需要
处理程序

执行一个简单的实现,创建一个
TimerTask

Timer timer = new Timer ();
timer.schedule (new TimerTask () {
            @Override
            public void run () {
               // Print your Hello here...
            }
        }, 0, 1000);

执行一个简单的实现,创建一个
TimerTask

Timer timer = new Timer ();
timer.schedule (new TimerTask () {
            @Override
            public void run () {
               // Print your Hello here...
            }
        }, 0, 1000);