Android移动应用开发教程 课件 7.1、多线程消息处理_第1页
Android移动应用开发教程 课件 7.1、多线程消息处理_第2页
Android移动应用开发教程 课件 7.1、多线程消息处理_第3页
Android移动应用开发教程 课件 7.1、多线程消息处理_第4页
Android移动应用开发教程 课件 7.1、多线程消息处理_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多线程消息处理Android汇报人:XXX目录1234Handler消息处理AsyncTaskIntentService案例实现01章节PARTHandler消息处理添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字Handler运行在主线程中(UI线程中),它与子线程可以通过Message对象来传递数据,此时Handler就承担着接受子线程传过来的Message对象,把这些消息放入主线程队列中,配合主线程进行UI更新。(1)

循环者LooperLooper对象用来为一个线程开启一个消息循环,用来操作MessageQueue。(2)HandlerHandler可以分发Message对象和Runnable对象到其所在线程的MessageQueue中,每个Handler实例都会绑定到创建他的线程中(一般是位于主线程)(3)MessageMessage是线程之间传递信息的载体,包含了对消息的描述和任意的数据对象。Handler消息处理表7-1Looper类的常用方法方法描述prepare()用于初始化Looperloop()Looper开始真正工作,可从消息队列中获取消息和处理消息myLooper()获取当前线程的Looper对象getThread()获取Looper对象所属的线程quit()用于结束Looper循环02章节PARTAsyncTask添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字

AsyncTask是Android中用于在后台线程上执行短时间运行的操作然后将结果发布回UI线程的工具。1)onPreExecute():在执行任务之前在UI线程上调用。此方法通常用于设置任务。2)doInBackground():在onPreExecute()完成后立即在后台线程上调用。3)onProgressUpdate():在调用publishProgress()后在UI线程上自动执行。4)onPostExecute(Result):在后台计算完成后在UI线程上执行。5)onCancelled():任务取消时调用的方法。AsyncTaskclassMyTaskextendsAsyncTask<Void,Integer,Void>{//在后台任务开始前执行@OverrideprotectedvoidonPreExecute(){//初始化操作}//在后台线程执行任务@OverrideprotectedVoiddoInBackground(Voidparams){for(inti=0;i<=100;i++){//发布进度更新,每发布一次,onPostExecute()执行一次publishProgress(i);//模拟耗时操作try{Thread.sleep(100);}catch(InterruptedExceptione){//处理中断异常}}returnnull;}//在后台任务完成后执行@OverrideprotectedvoidonPostExecute(Voidresult){//最终操作}//在后台任务执行过程中更新UI@OverrideprotectedvoidonProgressUpdate(Integervalues){//使用values[0]更新UI}}//在主线程的某个地方启动AsyncTasknewMyTask().execute();03章节PARTIntentService添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字

IntentService是Service的子类,它每次使用一个工作线程来处理全部启动请求。仅需要实现onHandleIntent()方法,它接收每次启动请求的Intent以便完成后台任务。

生成一个默认的且与主线程互相独立的工作者线程来执行所有传送至onStartCommand()方法的Intetnt

生成一个工作队列来传送Intent对象给onHandleIntent()方法,同一时刻只传送一个Intent对象,不必处理多线程的问题。

在所有的请求(Intent)都被执行完以后会自动停止服务,所以,不需要调用stopSelf()方法来停止该服务

提供了一个onBind()方法的默认实现,返回null

提供了一个onStartCommand()方法的默认实现,它将Intent先传送至工作队列,然后从工作队列中每次取出一个传送至onHandleIntent()方法,在该方法中对Intent作相应的处理IntentService04章节PART案例实现添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论