安卓系统Android应用程序开发PPT教材_第7章后台服务(6)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7.2 本地服务

7.2.2 使用线程

Thread.interrupted()方法功能


判断线程是否应被中断 通过捕获InterruptedException判断线程是否应被中断,并且在 捕获到InterruptedException后,安全终止线程
1. public void run() { • try { 1. while(true){ • //过程代码 • Thread.sleep(1000); 1. } • } catch (InterruptedException e) { 1. e.printStackTrace(); 2. } • }
பைடு நூலகம்
7.2 本地服务

7.2.2 使用线程

下面的代码是以1秒为间隔循环检测断线程是否被中断
1. public void run() { • while(!Thread.interrupted()){ 1. //过程代码 • Thread.sleep(1000); • } 1. }

第4行代码使线程休眠1000毫秒 当线程在休眠过程中被中断,则会产生InterruptedException 在中断的线程上调用sleep()方法,同样会产生 InterruptedException
7.2 本地服务

7.2.2 使用线程

使用线程

创建Thread对象,并将上面实现的Runnable对象作为参 数传递给Thread对象
1. private Thread workThread; • workThread = new Thread(null,backgroudWork,"WorkThread");

Thread的构造函数中,第1个参数用来表示线程组 第2个参数是需要执行的Runnable对象 第3个参数是线程的名称

调用start()方法启动线程
1. workThread.start();
7.2 本地服务

7.2.2 使用线程


线程在run()方法返回后,线程就自动终止了;不推荐使 用调用stop()方法在外部终止线程 最好的方法是通知线程自行终止,一般调用interrupt() 方法通告线程准备终止,线程会释放它正在使用的资源 ,在完成所有的清理工作后自行关闭
/forum-58-1.html 安卓HTC One X论坛
7.2 本地服务

7.2.2 使用线程

使用Handler更新用户界面


Handler允许将Runnable对象发送到线程的消息队列中, 每个Handler对象绑定到一个单独的线程和消息队列上 当用户建立一个新的Handler对象,通过post()方法将 Runnable对象从后台线程发送到GUI线程的消息队列中, 当Runnable对象通过消息队列后,这个Runnable对象将 被运行

1. workThread.interrupt();

interrupt()方法并不能直接终止线程,仅是改变了线程内 部的一个布尔字段,run()方法能够检测到这个布尔字段, 从而知道何时应该释放资源和终止线程 在run()方法的代码,一般通过Thread.interrupted()方法查 询线程是否被中断
相关文档
最新文档