我只是想知道为什么Handler必须使用Runnable的实例?毕竟Handler的目的是将一个线程放到另一个线程中。使用第三个线程,Runnable来实现这个目的的目的是什么?
亲切的问候,
答案 0 :(得分:2)
我想我理解你的困惑:你认为Runnable
对象本身就是一个单独的Thread
的实例。它不是。简单来说,它只是一个对象,通过实现Runnable
接口,传递它的Thread
知道它可以通过调用它上面的.run()
来执行其中的代码。
当您向Runnable
发送Handler
个对象时,Runnable
的{{1}} Handler
执行了Thread
。
简单来说,以这种方式解释它可能就足够了:如果你想在Handler
上提供一些工作要做Thread
,那么你必须在里面提供那段代码一个东西。现在,您提供给Handler
的对象必须实现某种interface
,以便Handler
知道在该对象中调用哪些方法以使其执行需要执行的操作。在基本术语中,Runnable
接口的作用是:实现Runnable
的对象必须实现run()
方法。