AsyncTask

来源:互联网 发布:仿淘宝手机商城模板 编辑:程序博客网 时间:2024/06/05 16:22
在新线程中更新UI还必须要引入handler,这让代码看上去非常臃肿。
为了解决这一问题,Android在1.5版本引入了android.os.AsyncTask。AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦。AsyncTask的任务其实最后是在
AsyncTask本身的一个静态线程池变量中被执行的。当然因为线程池变量为静态的,所以所有的AsyncTask实例的任务其实是在同一个线程池中被执行的。AsyncTask本身有一个静态的Handler.

该Handler用无参数的构造函数进行实例化。与UI进行交互的AsyncTask函数接口cancel(),onProgressUpdate(),onPostExecute()最终也是在该Handler上进行调用。为了确保UI的线程安全,该Handler必须在UI线程上。因此AsyncTask必须在UI线程上被载入。当然为了安全AsyncTask必须在UI线程上被实例。



0 0
原创粉丝点击