[size=xx-large]1. AsyncTask是什么?[/size]

AsyncTask使得可以恰当和简单地使用 UI线程。这个class允许你在后台做一些事情,然后把进度和结果告诉UI线程,而不需要操作handler和线程。

[size=xx-large]2. AsyncTask设计的思想是什么?[/size]

AsyncTask的设计是为了成为一个关于Thread和Handler的帮助类,并不是一个通用的线程框架。AsyncTask理想情况下,应该被使用于非常短的操作(最多几秒)。如果您希望您的线程可以运行很长时间,非常建议您使用java.util.concurrent包里面的API。例如Executor,ThreadPoolExecutor 和FutureTask

[size=xx-large]3. AsyncTask如何工作的?[/size]
黄色背景表示UI线程,蓝色背景表示后台线程。请注意,后台线程的执行时间有很严格的要求,也就是几秒钟。另外需要注意的是,所有的AsyncTask实例共享一个单线程的后台, 任何一个AsyncTask实例 中的等待和长时间操作都可能导致其它的AsyncTask实例不能得到及时执行, 等待就可能会导致死锁。

[img]http://dl2.iteye.com/upload/attachment/0126/5099/09babf69-a10f-3955-a391-64a0224eb52f.png[/img]
[size=xx-large]
4. AsyncTask适合做什么?[/size]
必须同时满足以下条件:
a.执行过程单一,仅输入一次,输出一次。
b.花费时间非常短但是仍然需要到后台去做事情,然后更新UI。例如加载文件,web页面或者数据库到UI。
c.执行线程必须是UI线程
d.不需要长期维护状态。

[size=xx-large]5.AsyncTask不适合做什么?[/size]

a.长时间的任务。
b.可重复调用的任务。
c.需要线程执行多个不同任务,任务之间又有关联。
d.执行线程不是UI线程。
e.任务执行后仍然需要维护一些状态。
f.后台服务模块,需要提供独立的API.

更多相关文章

  1. Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解(实例)[转]
  2. Android之zip文件加密解压及进度条的实现
  3. android aidl 使用实例
  4. 【Android】Handler 关于 new Handler 的问题
  5. android如何停止Thread和AsyncTask
  6. android 下动画结束时闪烁问题
  7. Android多线程--Handler
  8. Handler+Message+MessageQuque+Looper 异步加载类 消息处理机制
  9. Android微信登录、分享功能实例

随机推荐

  1. Android Studio安装ButterKnife插件
  2. android 联系人快速搜索
  3. android 扩展屏幕 多屏显示
  4. Android实现滑动菜单—SlidingMenu
  5. Chrome OS和Android的三大不同点
  6. android http上传文件
  7. android开发——显式intent
  8. OneAPM 试用测评
  9. 刚学习android安卓,哪里有源码例子可以下
  10. Android实现自定义相机系列(1)—自定义vi