当前位置:

Handler机制理解

访客 2024-04-24 1493 0

一、异步消息处理机制主要由以下部分组成:
Handler、Looper、MessageQueue、Message

二、Handler的用途
1.延时处理任务
2.线程间通信(包括在子线程中进行耗时操作,在主线程更新UI)

三、异步消息处理流程
1.Handler通过sendMessage()发送message到消息队列MessageQueue;
2.looper从MessageQueue中循环取出消息,并将message交给对应的targethanler;
3.hanler回调dispatchMessage方法收到消息后进行消息的处理。

PS:一个线程只有1个Looper、1个MessageQueue和多个message、一个进程有多个线程

在onCreate中创建个子线程更新UI不会发生异常,onResume时才会发生异常。因为异常的检测处理在ViewRootImpl中,该实例的创建和检测在onResume()之后进行。

是否能在子线程更新UI取决于ViewRootImpl在哪个地方创建的

发表评论

  • 评论列表
还没有人评论,快来抢沙发吧~