Android-AsyncTask
1.为什么要使用AsyncTask?
在使用android程序的过程中,经常会有一些耗时的操作,如果我们在UI线程中进行耗时操作 这是不允许的。因 此需要另外启动一个线程来进行操作。
2.实现方式
我们只要继承AsyncTask类,并且实现它的四个方法即可。另外我们需要给它指定泛型。
class MyAsyncTask extends AsyncTask<Params,Progress,Result>
每个泛型参数的含义如下:
Params:你要执行一个任务,你得给他一个参数比如URL,但可以为Void
Progress:执行过程中用于进度的显示参数。
Result:总得有个返回结果吧。
3.重要方法
需要大家重写的几个方法,当然有的也可以不用重写。
doInBackground(Params)我们所做的耗时操作就在这个方法里面,它
接收的参数就是execute()中传递过来的。
onPostExecute(Result) 当doInBackground(Params)执行完毕后会调用这个
方法并且,参数是doInBackground(Params)的返回值。
onPreExecute() 在doInBackground(Params)前执行,一般做一些初始化操作。
例如进度条的显示。
onProgressUpdate(Progress) 我们可以随时更新进度,利用在
doInBackground(Params)方法中调用publishProgress(Progress)
4.注意事项:
必须在UI线程中创建AsyncTask的实例。
必须在UI线程中调用AsyncTask的execute方法
重写的四个方法是系统调用的。
每个 AsyncTask只能执行一次。