一、系统自带的
listview.setonRefreshListener(new OnRefreshListener() {// 设置刷新监听
public void onRefresh() {
new AsyncTask() {
protected Void doInBackground(Void... params) {
SystemClock.sleep(1000);
data.add("刷新后添加的内容");
return null;
}
@Override
protected void onPostExecute(Void result) {
adapter.notifyDataSetChanged();
listview.onRefreshComplete();
}
}.execute(null);
}
});
二、自定义的异步任务
1.定义异步任务工具类
public abstract class MyAsyncTask {
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
onPostExecute();
};
};
public abstract void onPreExecute(); //后台任务执行之前提示用户的界面操作.
public abstract void onPostExecute(); //后台任务执行之后 更新界面的操作
public abstract void doInBackground(); //在后台执行的一个耗时的操作.
public void execute(){
onPreExecute(); // 耗时任务执行之前通知界面更新
new Thread(){
public void run() {
doInBackground();
handler.sendEmptyMessage(0);
};
}.start();
}
}
2.使用异步任务工具类
new MyAsyncTask() {
@Override
public void onPreExecute() {
}
@Override
public void onPostExecute() {
adapter.notifyDataSetChanged();
listview.onRefreshComplete();
}
@Override
public void doInBackground() {
SystemClock.sleep(1000);
data.add("刷新后添加的内容");
return null;
}
};