《Android开发视频教程(重制版)》第二季

《Android开发视频教程(重制版)》第二季

5 (17人评价)

S02E08_Handler(二下)的笔记

相关课时: 笔记详情:

相反例子:从mainthread向workerthread发送消息。

1 准备looper对象

2 在WorkerThread当中生成Handler对象

3 在MainThread当中发送消息

在WorkerThread的run方法中执行Looper.prepare();就生成一个Looper对象,并完成该对象的初始化工作。

在WorkerThread中生成handler对象。用匿名内部类。

Looper调用loop()方法。之后,looper对象将不断从消息队列中取出消息对象。然后调用handler的handleMessage()方法处理消息对象(在worker thread中)。如果消息队列中没有对象,则该线程阻塞。

主线程中定义workerthread并启动。

button监听器的onClick()方法,生成msg和发送消息。

onClick运行在主线程,handleMessage运行在worker thread,发送、接收消息在不同线程。

在哪个线程中实现handler对象new Handler()---实例化,并复写handleMessage()方法,就在哪个线程中处理消息。handler定义在主线程。

从主线程向worker thread发送消息,worker thread中run方法里固定三个步骤:

(1)Looper.prepare;

(2)handler = new MyHandler();(或者用匿名内部类new Handler(){})

(3)Looper.loop();

有米平台。

4 4

你感兴趣的课程

8万+浏览/ 916学员/ 4.5评分
免费
6万+浏览/ 177学员/ 5评分
免费
6万+浏览/ 973学员/ 4.8评分
免费