wordpress培训类网站模板下载,龙华网站建设 信科网络,建站优化收费,网站建设都1.Android的UI线程不安全#xff0c;想要更新应用程序里的UI元素#xff0c;则须在主线程中进行#xff0c;否则会出现异常。 2.Android不允许在子线程里进行UI操作#xff0c;对于该情况#xff0c;Android提供了一套异步消息处理机制#xff0c;完美解决在子线程中进行…1.Android的UI线程不安全想要更新应用程序里的UI元素则须在主线程中进行否则会出现异常。 2.Android不允许在子线程里进行UI操作对于该情况Android提供了一套异步消息处理机制完美解决在子线程中进行UI操作。 3.解析异步消息处理机制 Android中的异步消息处理有四部分Message, Handler, MessageQueue和Looper。 1Message线程之间传递的消息在内部携带少量的信息用在不同线程间交换数据。 2Handler处理者用于发送和处理消息。发送消息使用Handler的sendMessage()方法发出的消息经过一系列辗转处理 会传递到Handler的handleMessage()方法中。 3MessageQueue消息队列用于存放所有通过Handler发送的消息。这部分消息会一直存在于消息队列中等待被处理。 每个线程中只有一个MessageQueue对象。 4Looper每个线程中的MessageQueue的管家调用Looper的loop()方法后会进入到无限循环中然后每当发现MessageQueue 中存在一条消息会将它取出传递到Handler的handleMessage()方法中。每个线程也只会有一个Looper对象。 4.异步消息处理的整个流程Firstly在主线程中创建一个Handler对象并重写handleMessage() 方法Secondly当子线程中需 要进行UI操作时就创建个Message对象并通过Handler将这条消息发送出去Thirdly消息被添加到MessageQueue队列中等待被 处理而Looper则会一直尝试从MessageQueue中取出待处理消息最后分发回Handler的handleMessage() 方法中。Handler在主线程中创建此时handleMessage()方法中的代码也会在主线程中运行于是安心进行UI操作。 5.整个异步消息处理机制的流程示意图如下 一条Message经过这样一个流程的辗转调用后也就从子线程进入到主线程从不能更新UI变成可以更新UI。 转载于:https://www.cnblogs.com/Iamasoldier6/p/5047354.html