Timer和Runnable有什么区别?

时间:2018-12-21 23:58:21

标签: java android

我想知道这两个类之间到底有什么区别,什么时候应该使用它们。

我问这个问题是因为我想知道以下示例代码:

mStatusChecker = new Runnable() {
        @Override
        public void run() {
            invalidate();
            mHandler.postDelayed(mStatuschecker, (long) increment * 1000);
        }
    };

如果将mHandler.postDelayed代码行放在之前 invalidate(),则Runnable的执行速度几乎是原来的两倍。我想知道是否可以使用Timer来解决此问题。

3 个答案:

答案 0 :(得分:0)

计时器是线程用于计划任务以在将来的后台线程中执行的工具。可以安排任务一次执行或定期执行重复任务。

答案 1 :(得分:0)

如果您需要计时器功能(例如需要定期运行的任务),则最好使用用户计时器功能。

  

Java java.util.Timer是一个实用程序类,可用于安排   线程在将来的特定时间执行。 Java Timer类可以   用于计划一次运行或定期运行的任务   间隔。 Java Timer类是线程安全的,并且多个线程可以   共享一个Timer对象,而无需外部同步。

https://www.journaldev.com/1050/java-timer-timertask-example

答案 2 :(得分:0)

Timer不是Android类,而是Android SDK中包含的Java SDK类,用于与旧代码兼容。它在Android组件的生命周期中无法很好地发挥作用,并且需要额外的代码才能与UI交互。简而言之,请勿在Android上使用Timer