1.写法
public abstract class MyAsycnTask {
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
postTask();
};
};
/**
* 在子线程之前执行的操作
*/
public abstract void preTask();
/**
* 在子线程之中执行的操作
*/
public abstract void doinBack();
/**
* 在子线程之后执行的操作
*/
public abstract void postTask();
/**
* 执行
*/
public void execute(){
preTask();
new Thread(){
public void run() {
doinBack();
handler.sendEmptyMessage(0);
};
}.start();
}
}
2.用法
//异步加载框架
new MyAsycnTask() {
@Override
public void preTask() {
//设置控件是否显示
loading.setVisibility(View.VISIBLE);
}
@Override
public void postTask() {
lv_contact_contacts.setAdapter(new MyAdapter());
loading.setVisibility(View.INVISIBLE);//数据显示完成,隐藏进度条
}
@Override
public void doinBack() {
// 获取联系人
list = ContactsEngine.getAllContacts(getApplicationContext());
}
}.execute();