Android多线程编程(异步通信)--->Handler和AsyncTask

本文深入探讨Android中的多线程通信,详细解析Handler机制,包括UI线程模型、消息传递区别及倒计时案例。同时,介绍了AsyncTask的使用,通过模拟进度条下载展示了其实现原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Handler机制:

1)主线程UI:

本身就有一个Looper机制,其中有Handler,中包含了消息队列MessageQueen:

这里写图片描述

2)UI线程模型:

UI主线程不允许其他线程操作组件,只有UI主线程能够绘制界面。

3)分析:子线程发送消息给主线程、主线程发送消息给子线程区别:

  • 子线程发送消息给主线程:由于主线程中本身就有Looper机制,里面有消息队列,所以子线程只需要获得主线程中的Handler对象,用它发送消息,主线程中的Looper会查看到排队的message。
  • 主线程发送消息给子线程:子线程中没有Looper机制,所以需要创建Looper和Handler,然后主线程用子线程中的Handler实例进行发送消息,子线程就能收到。
    图解looper管理消息:
    这里写图片描述
4)范例:倒计时:

功能:点击按钮,开始60秒倒计时,时间再textview显示,结束时,按钮显示“计时结束”。
思路:这里是子线程发送消息给主线程
发送的是count秒数,主线程接收到消息,绘制界面显示到textview中。
这里写图片描述

创建主线程中Handler的子类,重写其handleMessage()方法,接收消

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值