在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
非ui线程真的不能更新ui吗?答:某种情况下可以。
在oncreate方法中开启子线程更新ui,在thread没有休眠的情况下,因为ViewRootImp在activity的onresume方法中创建,在ViewRootImp方法中判断当前线程是否为主线程,oncreate在onresume之前执行,所以这种情况下,可以进行更新ui操作。
在oncreate方法中开启子线程更新ui,在thread没有休眠的情况下,因为ViewRootImp在activity的onresume方法中创建,在ViewRootImp方法中判断当前线程是否为主线程,oncreate在onresume之前执行,所以这种情况下,可以进行更新ui操作。
2018-01-28