Handler.postDelayed(Runnable)和CountdownTimer的区别

12

有时我们需要延迟执行代码。

可以使用 Handler.postDelayed(Runnable)CountdownTimer 来实现。

从性能角度来看,哪一个更好?

请参考下面的示例代码

Handler

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                 //DO SOMETHING
            }
        }, 1000);

倒计时器

        new CountDownTimer(1000, 1000) {
            public void onFinish() {
                 //DO SOMETHING
            }
            public void onTick(long millisUntilFinished) {}
        }.start();
3个回答

11

Handler 应该会提供更好的性能,因为 CountDownTimer 本身包含一个 Handler,如您可以在这里看到。


8

我同意Handler提供了更好的性能。但是需要注意的是,CountDownTimer对象在完成后将被销毁,而Handler会在完成后继续存在。如果您只需要一个临时计时器,则首选CountDownTimer。否则,请使用Handler。


这应该是被接受的答案。它是唯一解释“为什么”的答案。此外,其他答案提供的所有链接都不再指向有效的网页。 - WebViewer

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接