AsyncTask的基本用法
步骤
-
创建一个内部类继承AsyncTask<Params, Progress, Result>
class MyTask extends AsyncTask<Void, Integer, String>
- Params继承Object,用于设置doInBackground的形参。
- Progress继承Object,用于设置onProgressUpdate的形参。
- Result继承Object,用于设置onPostExecute的形参以及doInBackground的返回值。
-
重写其中的onPreExecute,doInBackground,onProgressUpdate,onPostExecute,onCancelled方法。
@Override //初始化AsyncTask protected void onPreExecute() { super.onPreExecute(); } @Override //将数据通过publishProgress(Progress...values)传输给onPostExectue //并且将返回值传给onPostExecute protected String doInBackground(Void... voids) { return null; } @Override //接受publishProgress(Progress...values)传递过来的值 //values是一个数组,一般取值用values[0] protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); } @Override //执行完毕时调用的方法 protected void onPostExecute(String s) { super.onPostExecute(s); } @Override //销毁AsyncTask时调用的方法 protected void onCancelled() { super.onCancelled(); }
-
创建一个MyTask并执行execute方法
MyTask task = new MyTask(); task.execute();