1.创建异步加载框架
public abstract class MyAsycnTaks {
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 MyAsycnTaks() {
@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 = ContactEngine.getAllContactInfo(getApplicationContext());
}
}.execute();