码迷,mamicode.com
首页 > 其他好文 > 详细

AsyncTask(异步任务)个人理解

时间:2015-09-26 18:25:04      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

1.AsyncTask介绍:在开发Android移动客户端时由于当下的程序很多都会联网进行数据交互,为了防止ANR(Application Not Response)现象,通常情况下程序会开多个线程,并将耗时的操作放到

主线程之外的线程中运行,而不会只用一个主线程,AsyncTask是线程的另一种表现形式,它可以做耗时操作并且操作后可以在onPostExecuse()方法中直接更新UI的数据.

2.AsyncTask使用方法:

   首先创建一个类继承AsyncTask<参数1,参数2,参数3>并重写AsyncTask里面的方法(按执行顺序编号);

  1>  :  onPreExecute()  在执行在实际耗时操作之前,可以在此方法中做一些控件的实例化操作,此方法运行后直接运行doInBackGround(Paramas...)

  2>  :  doInBackGround(Params...)  此方法是实际做耗时造作的方法,该方法中的参数Params是可变参数

  3>  :  onProgressUpdate(Progress)  此方法可以获取耗时操作的运行进度(下载时可以在这里显示下载进度)

  4>  :  onPostExecute(Result )   此方法在doInBackGround(Params...)方法完成后被UI调用,在此方法里可以进行更新UI操作.

 

3.AsyncTask<参数1,参数2,参数3> 中三个参数介绍:

  参数1: 传入doInBackGround(Params...) 中的值的类型

  参数2: 传入onProgressUpdate(Progress)中的值的类型

  参数3: 传入onPostExecute(Result )中的值的类型,也是doInBackGround(Params...)返回的值的类型

 

4.AsyncTask使用注意:

  AsyncTask必须在UI线程中实例化,并且在UI线程中调用execute方法运行AsyncTask

  不要在UI线程中调用AsyncTask中的某一个或多个方法

  同一个AsyncTask只能被调用一次,AsyncTask中的doInBackGround(Params...)是一个线程,当同一个AsyncTask被重复调用时相当于开了多个线程,而线程是同步执行的容易导致程序出错.

 

AsyncTask(异步任务)个人理解

标签:

原文地址:http://www.cnblogs.com/flagghost/p/4841027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!