android 中的多线程使用

一 asyncTask 本身有2个线程 和一个handler
AsyncTask 使用的局限:
1 asyncTask 必须在主线程中加载,对象必须在主线程中创建,因为在asyncTask 中有个sHandler 为了让执行环境切到主线程中去,这就要求sHandler 这个对象进行主线程创建。由于静态成员变量在加载类的时候进行初始化,因此这就变相要求AsyncTask 类在主进程中加载。

2 execute 方法必须在Ui 线程中执行。
3 一个asyncTask 对象只能执行一次execute();
4 在1.6 版本之前是串行的,1.6 版本变成并行处理,android 3.0 为了避免并发引起的错误又开始用串行,在3.0 后面的版本中,用executeOnExecutor 来并行的执行任务。


HandlerThread,继承thread,它是一种可使 Handler 的Thread

三IntentService 封装了HeadlerThread 和 Thread

猜你喜欢

转载自blog.csdn.net/ahubenkui/article/details/78507011