当一个异步任务被执行,任务经过四各步骤:
1.onPreExecute(),在UI线程上调用任务后立即执行。这步通常被用于设置任务,例如在用户界面显示一个进度条。
2.doInBackground(Params...),后台线程执行onPreExecute()完后立即调用,这步被用于执行较长时间的后台计算。异步任务的参数也被传到这步。计算的结果必须在这步返回,将传回到上一步。在执行过程中可以调用publishProgress(Progress...)来更新任务的进度。
3.onProgressUpdate(Progress...),一次呼叫 publishProgress(Progress...)后调用 UI线程。执行时间是不确定的。这个方法用于当后台计算还在进行时在用户界面显示进度。例如:这个方法可以被用于一个进度条动画或在文本域显示记录。
4.onPostExecute(Result), 当后台计算结束时,调用 UI线程。后台计算结果作为一个参数传递到这步。
线程规则
有一些线程规则必须去遵守,这个类才会正确的工作:
任务实例必须创建在 UI线程
execute(Params...)必须在UI线程上调用
不要手动调用onPreExecute(), onPostExecute(Result), doInBackground(Params...), onProgressUpdate(Progress...)
这个任务只执行一次(如果执行第二次将会抛出异常)
内部类
enum AsyncTask.Status 表示任务的当前状态
分享到:
相关推荐
主要介绍了Android中异步类AsyncTask用法,分析总结了Async Task类的功能、特点及相关的使用技巧与注意事项,需要的朋友可以参考下
Android AsyncTask的缺陷和问题总结 在Android开发中,AsyncTask可以使得用户避免直接使用Thread类和Handler 来处理后台操作,适用于需要异步处理数据并将数据更新到界面上的情况。AsyncTask适用于后台操作只有几秒...
3. AsyncTask异步处理任务 15 4. 音频播放 20 8. 视频播放 26 9. 使用摄像头拍照 32 10. 视频录制 39 11. 国际化 43 12. 样式和主题 46 13. 编码实现软件界面 49 14. 标签页(选项卡) 51 15. 用HTML实现网页界面 57...
最无私的Android资料(书籍+代码)分享[总结] Android中文帮助教程(非常合适新手入门) android程序编写及调试新手入门 大家一起学Android(Windows篇) android入门与提高必看指南 Android入门逆引手册 Android...
Android内存泄漏总结 Handler内存泄漏分析及解决 Handler、Looper、Message、MessageQueue基础流程分析 Android性能优化 ListView详解 RecyclerView和ListView的异同 AsyncTask源码分析 插件化技术 自定义控件 事件...
Android内存泄漏总结 Handler内存泄漏分析及解决 Handler、Looper、Message、MessageQueue基础流程分析 Android性能优化 ListView详解 RecyclerView和ListView的异同 AsyncTask源码分析 插件化技术 自定义控件 事件...
下面的题目都是楼主在android交流群大家面试时遇到的,如果大家有好的题目或者好的见解欢迎分享,楼主将长期维护此帖。 某公司高级面试题(2015-03-14)【感谢helder分享】 1、详述Android系统架构,包括层与层之间...
主要介绍了总结Android中多线程更新应用的页面信息的方式,文中共总结了runOnUiThread、Handler、AsyncTask异步以及View直接在UI线程中更新的方法,需要的朋友可以参考下
大家都知道由于性能要求,Android要求只能在UI线程中更新UI,要想在其他线程中更新UI,我大致总结了4种方式,欢迎补充纠正: 使用Handler消息传递机制; 使用AsyncTask异步任务; 使用runOnUiThread(action)方法...
Android 多线程的实例详解 Java多线程方式 1. 继承Thread线程,实现run方法 2. 实现Runnable接口 JAVA单继承性,当我们想将一个已经继承了其他类的子类放到Thread中时,单继承的局限就体现出来了 但是可以实现...
新闻客户端案例共有四个界面,分别是新闻、贴吧、知道和图库。... 新闻客户端案例使用百度提供的接口获取百度数据。...该案例是一个综合性较为全面的应用,通过该案例的学习可以对基础只是做一个总结并掌握更深的知识。
我们知道,多线程是Android开发中必现的场景,很多原生API和开源项目都有多线程的内容,这里简单总结和探讨一下常见的多线程切换方式。 我们先回顾一下Java多线程的几个基础内容,然后再分析总结一些经典代码中对于...
最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来。所以决定抽空学习总结...
Android相关总结啥也不是JAVA相关知识点链接基础泛型注解反射并发序列化Json解析IO网络数据结构相关知识点链接HashMap阻塞队列JVM相关知识点链接JVMView相关知识点链接自定义View事件分发机制RecyclerView解析...
在经过一些成功和失败的面试后,也总结出一些经验,这里将这些经验无私地分享给各位,希望对你们能有所帮助。如果侥幸帮到了您,别忘了和我分享你的喜悦。 后面文章中提及的代码,在这个 链接中都有反馈,有兴趣的...