初识Android AsyncTask
AsyncTask 是android中的异步任务,其目的是解决线程阻塞的问题。
AsyncTask 定了三种范型。
AsyncTask<Params, Progerss, Result>
Params
, 定义的是doInBackground方法的参数类型。Progress
, 定义的是onProgressUpdate方法的参数类型。Result
, 定义的是onPostExcute方法的参数,以及doInBackground方法的返回值类型。
在一个异步任务里,不是所有的类型总被用。假如一个类型不被使用,可以简单地使用 Void
类型:
private class MyTask extends AsyncTask<Void, Void, Void> { ... }
AsyncTask 执行的四个步骤:
1.首先执行的是onPrevExcute()方法,该方法运行在ui 线程中。
2.然后执行的是doInBackground()方法 ,该方法运用在后台的线程中,在该方法中可以通过调用publishProgress()方法 来运行 onUpdateProgress()方法。
3. onUpdateProgress方法,运行在ui线程中,可以动态更新ui元素的状态。
4. onPostExcute方法,当doInbackground方法运行结束后会立即运行该方法。该方法运行在ui线程中。 doInbackground方法的返回值将做为这个方法的参数。