Handler介绍
Handler主要用于异步消息的处理:创建于主线程并从属于主线程的 Handler ,在子线程中当发出一个消息之后,首先进入一个消息队列(MainActivity 默认有一个消息队列,其他 Activity 中则需要用 looper 来创建,在此不再阐述),发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。
sendMessge 方法
需要在创建 Handler 时重写 handleMessage 方法,内容即为要对主线程进行的操作
post 方法
此方法的参数比较特殊,是一个实现了 Runnable 接口的匿名类,并且重写其 run 方法,注意在子线程中 post 这个匿名类的参数后,后面并没有 start 方法,查看源码能得知并未创建新的线程,post 的方法仅仅将这个匿名类中的 run 方法作为消息发送了出去。
网友评论