1.问答
1.作用
- 将工作线程需要更新UI的操作传送到主线程
2.意义
- 多个线程并发更新UI的同时,保证线程安全
2.相关概念
3. 使用方式
Handler
使用方式 因发送消息到消息队列的方式不同而不同- 共分为2种:使用
Handler.sendMessage()
、使用Handler.post()
4. 使用步骤
方式1:使用 Handler.sendMessage()
在该使用方式中,又分为2种:新建Handler
子类(内部类)、匿名 Handler
子类
但本质相同,即 继承了
Handler
类 & 创建了子类
1 | /** |
方式2:使用Handler.post()
1 | // 步骤1:在主线程中创建Handler实例 |
5. 实例讲解
本文将用实例逐个讲解 Handler
的用法
注:
- 由于
Handler
的作用 = 将工作线程需操作UI的消息 传递 到主线程,使得主线程可根据工作线程的需求 更新UI,从而避免线程操作不安全的问题- 故下文的实例 = 1个简单 “更新
UI
操作” 的案例- 主布局文件相同 = 1个用于展示的
TextView
,具体如下:
布局代码:activity_main.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
5.1 使用 Handler.sendMessage()
方式1:新建Handler子类(内部类)
- 具体使用
1 | public class MainActivity extends AppCompatActivity { |
方式2:匿名内部类
- 具体使用
1 | public class MainActivity extends AppCompatActivity { |
5.2 使用 Handler.post()
- 具体使用
1 | public class MainActivity extends AppCompatActivity { |