android的异步任务体系中还有一个非常重要的操作类:AsyncTask,其内部主要使用的是java的线程池和Handler来实现异步任务以及与UI线程的交互。本文主要解析AsyncTask的的使用与源码。
首先我们来看一下AsyncTask的基本使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class MAsyncTask extends AsyncTask<Integer, Integer, Integer> { @Override protected void onPreExecute() { super.onPreExecute(); Log.i(TAG, "onPreExecute...(开始执行后台任务之前)"); }
@Override protected void onPostExecute(Integer i) { super.onPostExecute(i); Log.i("TAG", "onPostExecute...(开始执行后台任务之后)"); }
@Override protected Integer doInBackground(Integer... params) { Log.i(TAG, "doInBackground...(开始执行后台任务)"); return 0; } }
|
我们定义了自己的MAsyncTask并继承自AsyncTask;并重写了其中的是哪个回调方法:onPreExecute(),onPostExecute(),doInBackground();
然后开始调用异步任务:
1
| new MAsyncTask().execute();
|
好了,下面我们开始分析异步任务的执行过程,首先查看一下异步任务的构造方法: