Android mobile development and application
安徽师范大学-计算机信息学院-2019-2020学年第一学期, 作者(授课教师): 周文
通过Thread类的构造方法创建线程
Thread(Runnable runnable)
通过实现Runnable接口创建线程
xxxxxxxxxxpublic class ClassName extends Object implements Runnable
Thread类提供了start()方法,可以开启线程,其语法格式如下:
xxxxxxxxxxstart()
在Android中,可以使用Thread类的sleep()方法,让线程休眠指定的时间。
sleep()方法的语法格式如下:
xxxxxxxxxxsleep(long time)
当需要中断指定线程时,可以使用Thread类提供的interrupt()方法来实现。
interrupt()方法的语法格式如下:
xxxxxxxxxxinterrupt()
创建Android项目,通过实现Runnable接口来创建线程、开启线程和中断线程。
创建Android项目,开启一个新线程播放背景音乐,在音乐文件播放完毕后,暂停5秒钟后重新开始播放。

Looper对象用来为一个线程开启一个消息循环,用来操作MessageQueue。
Looper类提供的常用方法如下表所示。
| 方法 | 描述 |
|---|---|
| prepare() | 用于初始化Looper |
| loop() | 调用loop()方法后,Looper线程就开始真正工作了,它会从消息队列里获取消息和处理消息 |
| myLooper() | 可以获取当前线程的Looper对象 |
| getThread() | 用于获取Looper对象所属的线程 |
| quit() | 用于结束Looper循环 |
消息处理类(Handler)允许发送和处理Message或RannableRunnable对象到其所在线程的MessageQueue中。
Handler类提供的常用的发送和处理消息的方法如下表所示。
| 方法 | 描述 |
|---|---|
| handleMessage(Message msg) | 处理消息的方法。通常重写该方法来处理消息,在发送消息时,该方法会自动回调 |
| post(Runnable r) | 立即发送Runnable对象,该Runnable对象最后将被封装成Message对象 |
| postAtTime(Runnable r, long uptimeMillis) | 定时发送Runnable对象,该Runnable对象最后将被封装成Message对象 |
| postDelayed(Runnable r, long delayMillis) | 延迟多少毫秒发送Runnable对象,该Runnable对象最后将被封装成Message对象 |
| sendEmptyMessage(int what) | 发送空消息 |
| sendMessage(Message msg) | 立即发送消息 |
| sendMessageAtTime(Message msg, long uptimeMillis) | 定时发送消息 |
| sendMessageDelayed(Message msg, long delayMillis) | 延迟多少毫秒发送消息 |
| 属性 | 类型 | 描述 |
|---|---|---|
| arg1 | int | 用来存放整型数据 |
| arg2 | int | 用来存放整型数据 |
| obj | Object | 用来存放发送给接收器的Object类型的任意对象 |
| replyTo | Messenger | 用来指定此Message发送到何处的可选Messager对象 |
| what | int | 用于指定用户自定义的消息代码,这样接收者可以了解这个消息的信息 |
创建Android项目,开启新线程获取网络图片并显示到ImageView中。

创建Android项目,开启新线程实现电子广告牌。

本章结束
2019-9-1