网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Android编程实现异步消息处理机制的几种方法总结-创新互联

本文实例讲述了Android编程实现异步消息处理机制的几种方法。分享给大家供大家参考,具体如下:

专注于为中小企业提供成都网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业来安免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。1、概述

Android需要更新ui的话就必须在ui线程上进行操作。否则就会抛异常。

假如有耗时操作,比如:在子线程中下载文件,通知ui线程下载进度,ui线程去更新进度等,这个时候我们就需要用到异步消息处理。

一、什么是Handler

Handler是Android提供用来异步更新UI的一套机制,也是一套消息处理机制,可以用它来发送消息,也可以用它来接收消息。

二、为什么使用Handler

Android在设计之时,就封装了一套消息的创建、传递、处理机制,作为系统原生的异步消息处理机制的实现之一,我们需要遵循这样的处理机制,该机制的另外一种实现是AsyncTask。

三、Handler用法

1、postdelayed()延时发送执行子线程(Demo)
2、sendMessage()回调handleMessage()传递消息
3、sendToTarget()传递消息

四、为什么在Android中只能通过Handler机制在主线程中更新UI?

最根本的是解决多线程并发问题。
假如在同一个Activity中,有多个线程同时更新UI,且没有加锁,那会导致什么问题呢?
UI更新混乱。
假如加锁呢?
会导致性能下降。
使用Handler机制,我们不用去考虑多线程的问题,所有更新UI的操作,都是在 主线程消息队列中轮询去处理的。
Handler 、 Looper 、Message 这三者都与Android异步消息处理线程相关的概念。那么什么叫异步消息处理线程呢?
异步消息处理线程启动后会进入一个无限的循环体之中,每循环一次,从其内部的消息队列中取出一个消息,然后回调相应的消息处理函数,执行完成一个消息后则继续循环。若消息队列为空,线程则会阻塞等待。
—此处有图为证。

Android编程实现异步消息处理机制的几种方法总结

源码解析 1、Looper

对于Looper主要是prepare()loop()两个方法。

A. 首先看prepare()方法
public static final void prepare() {
    if (sThreadLocal.get() != null) {
      throw new RuntimeException("Only one Looper may be created per thread");
    }
    sThreadLocal.set(new Looper(true));
}


当前文章:Android编程实现异步消息处理机制的几种方法总结-创新互联
网址分享:http://bjjierui.cn/article/dihdhh.html

其他资讯