Android mobile development and application
安徽师范大学-计算机信息学院-2019-2020学年第一学期
, 作者(授课教师): 周文
通过Thread类
的构造方法创建线程
Thread(Runnable runnable)
通过实现Runnable接口
创建线程
xxxxxxxxxx
public class ClassName extends Object implements Runnable
Thread类提供了start()方法
,可以开启线程,其语法格式如下:
xxxxxxxxxx
start()
在Android中,可以使用Thread类的sleep()方法
,让线程休眠指定的时间。
sleep()方法
的语法格式如下:
xxxxxxxxxx
sleep(long time)
当需要中断指定线程时,可以使用Thread类
提供的interrupt()方法
来实现。
interrupt()方法
的语法格式如下:
xxxxxxxxxx
interrupt()
创建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