常常会用到AsyncTask 类来实现异步操作,如果每次都 通过 new AsyncTask 来使用,有时略显麻烦。我这里简单的将其封装为一个简化操作工具:
1、AsyncCallBack
public abstract class AsyncCallBack {
public void onPreExecute() {
}
public abstract void doInBackground();
public abstract void onPostExecute();
}
2、AsyncTaskUtil
public class AsyncTaskUtil {
public static void doAsync(final AsyncCallBack callBack) {
if (callBack == null) {
return;
}
new AsyncTask<Void, Void, Void>() {
@Override
protected void onPreExecute() {
callBack.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
callBack.doInBackground();
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
callBack.onPostExecute();
}
}.execute();
}
}
3、使用
AsyncTaskUtil.doAsync(new AsyncCallBack() {
@Override
public void onPreExecute() {
//操作前执行
}
@Override
public void doInBackground() {
//耗时操作
}
@Override
public void onPostExecute() {
//ui及数据处理
}
});