Handler.postDelayed v/s Runnable.run。可以调用 .运行 而不是 .postDelayed 吗?

Handler.postDelayed v/s Runnable.run. Is it alright to call .run instead of .postDelayed?

我正在尝试实现循环 Runnable。我发现的示例似乎使用以下想法来启动可运行的。

        handler = new Handler();
        final Runnable r = new Runnable() {
            public void run() {
                handler.postDelayed(this, 10000);
                doIt();
                count ++;
            }
        };
        r.run();// what I prefer
//      handler.postDelayed(r, 1000);//their idea

我更喜欢调用 run() 方法来启动 Runnable。如果直接调用 run()!

,我可能遇到的麻烦是什么?

谢谢! :)

I prefer using the call to the run() method to start the Runnable.

好的。

What would be the possible troubles that I could get into if any by a direct call to run()!

第一次通过 run() 会立即发生,而不是你注释掉的代码,这将导致第一次通过 run() 发生在从现在开始约 1000 毫秒。

不过,我会转储 HandlerpostDelayed() 也是 View 上的一种方法,因此只需在 UI 中使用一些小部件即可。

如果调用r.run()Runnable会立即执行。但是,如果您按照他们的建议调用 handler.postDelayed(r, 1000);,则 Runnable 将在 1s 过去后才会执行。所以,这是第一点。第二,为什么不用Android提供的Thread Loop merchanism,即HandlerAsyncTaskHandlerThread,因为Android非常支持嗯?