第二十课时课件asynctask详解_第1页
免费预览已结束,剩余2页可下载查看

下载本文档

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

文档简介

1、Asyn(作者:k 简介k 详解)一.AsynAsynk,即异步任务,是 Android 给提供的一个处理异步任务的类。通过此类,可以实现主线线程的通讯。线程执行异步任务,并把结果返回给主线程。不能把所有的任务都放在主线进行实现,比如网络操作,文件等耗时操作,如果放到主线程,就会造成后阻塞。当阻塞时间太长的时候,就会抛出Application Not Responsed(ANR)错误.Android 给提供了主线其他线程通讯的机制.线程结束的时候,我们可以使用 Handler 或者 runOnUIThread 方法去通知主线更新 UI.而 Asynk 封装了这一切,使得可以很方便的在子线更新

2、UI.二.Asynk 代码展示Section1-基础使用方法Section2-文件Section3-进阶用法,防止内存泄漏三.使用方法总结1.当定义一个类来继承 Asynk 这个类的时候,需要为其指定 3 个泛型参数:Asynka.Params: 这个泛型指定的是传递给异步任务执行时的参数的类型b.Progress: 这个泛型指定的是的异步任务在执行的时候将执行的进度返回给 UI 线程的参数的类型c.Result: 这个泛型指定的异步任务执行完后返回给 UI 线程的结果的类型 c2.在定义一个类继承 Asynk 时,必须要指定好这三个泛型的类型,如果都不指定的话,则都将其写成 Void,例如:

3、Asynk 3.步骤:当执行一个异步任务的时候,其需要按照下面的 4 个步骤分别执行:a.onPreExecute(): 这个方法是在执行异步任务之前的时候执行,并且是在主线程当中执行的,通常在这个方法里做一些 UI 控件的初始化的操作,例如弹出 ProgressDialognBackground(Params. params): 在 onPreExecute()方法执行完之b.后,会马上执行这个方法,这个方法就是来处理异步任务的方法。Android 操作系统会开启一个子线执行的这个方法,这个方法执行完之后会将执行结果发送给的最后一个 ontExecute 方法。values): 这个方法也是

4、在主线执行c.onProgrepdate(Progess.的。在异步任务执行的时候,有时候需要将执行的进度返回给的 UI界面,例如一张网络,需要时刻显示其的进度,就可以使用这个方法来更新的进度。这个方法在调用之前,需要在nBackground 方法中调用一个 publishProgress(Progress) 的方法来将的进度时时刻刻传递给 onProgrepdate 方法来更新tExecute(Result. result): 当的异步任务执行完之后,就会将d.on结果返回给这个方法,这个方法也是在主线程当中调用的,可以根据nBackground 的结果对 UI 进行操作。4.Asynk 会一直执行nBackground()方法直到方法执行结束。一旦上述方法结束,会依据情况进行不同的操作。a.如果 cancel 方法调用了,则执行 onCancelled 方法b.如果 cancel 方法没有调用,则执行 ontExecute 方法5应该在循环中使用 isCancelled()来判断,如果返回为 true,应该避免执行后续无用的循环操作。6.cancel 方法传的值

温馨提示

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

评论

0/150

提交评论