0

我只是想知道为什么 Handler 必须采用 Runnable 的实例?毕竟,处理程序的目的是将工作从一个线程放入另一个线程。使用第三个线程的目的是什么,一个 Runnable 来完成这个?

亲切的问候,

4

1 回答 1

2

我想我理解你的困惑:你认为一个Runnable对象本身就是一个单独的Thread. 它不是。简单来说,它只是一个对象,通过实现Runnable接口,Thread你将它传递给知道它可以通过调用它来执行其中的代码.run()

当您将Runnable对象发送到 时Handler,即在中Runnable执行HandlerThread

简单来说,这样解释可能就足够了:如果你想为 aHandler提供一些自己做的工作Thread,那么你必须在一个对象中提供那段代码。现在,您提供给的对象Handler必须实现某种,interface以便Handler知道在该对象中调用什么方法以使其完成所需的工作。基本来说,这就是接口的作用:实现该方法Runnable的对象是强制的。Runnablerun()

于 2012-10-09T09:26:03.390 回答