第二个例子,postDelayed(Runnable, long)外面放一个子线程,这样的例子更好,谢谢讲解,就是讲的太快了。
2018-06-19
你可以创建自己的线程,并通过Handler与主应用程序线程进行通信,这是通过调用上面介绍的post或sendMessage方法来发送Runnable或Message完成的,但这是在你创建的新线程里来完成的。然后给定的Runnable或Message将被安排在Handler所绑定的message queue消息队列中,并在适当时进行处理。
2018-06-19
当为你的应用程序创建一个进程(process)时,这个进程的主线程(main thread)专门用于运行一个message queue消息队列,该消息队列负责管理顶级应用程序对象(比如说活动activities,广播接收器broadcase receivers等)以及它们创建的任何窗口(windows)。
2018-06-19
在posting或sending给Handler时,您可以在message queue准备就绪时立即处理该item,或者在处理它之前指定延迟或指定延迟处理的绝对时间。后两者允许你实现timeouts,ticks以及其他基于时间的行为。
2018-06-19
Handler主要有两个用途:(1)安排messages和runnables在之后的某个时间去执行,也就是定时的执行messages和runnables对象;(2)将一个处理的事件入队并且在另外一个线程上去执行。
2018-06-19
我把文档认真翻译了一下,希望能帮到大家
一个Handler允许你发送或处理一个Message或Runnable对象,并且这个Handler与创建他的线程的MessageQueue相关联。每一个Handler实例与一个带有Message queue的单一线程进行绑定。当你创建一个新的Handler实例的时候,他默认会绑定到你创建Handler的线程的Message queue当中。从这时起,Handler将向该消息队列(message queue)传递消息(message)和可运行信息(runnables),并且在执行完这些信息后,将所传递的信息在message queue中移除。
一个Handler允许你发送或处理一个Message或Runnable对象,并且这个Handler与创建他的线程的MessageQueue相关联。每一个Handler实例与一个带有Message queue的单一线程进行绑定。当你创建一个新的Handler实例的时候,他默认会绑定到你创建Handler的线程的Message queue当中。从这时起,Handler将向该消息队列(message queue)传递消息(message)和可运行信息(runnables),并且在执行完这些信息后,将所传递的信息在message queue中移除。
2018-06-19