Android 异步任务
2014-01-10 15:35
369 查看
一、系统自带的
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;
}
};
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;
}
};
相关文章推荐
- [android]fmodex在某些android设备上声音延迟Latency
- android pcm编解码
- ****Android自定义组件之一:View详解
- 【转】高手速成android开源项目
- Android 性能优化篇
- Android解决自定义View获取不到焦点的情况
- android 4.2 隐藏状态栏
- Android中View的绘制过程 onMeasure方法简述 附有自定义View例
- 新手学习之android listView
- android采用语音文件形式让TextView和EditText发出声音
- Android 4.0中关于内外置存储卡读写权限问题
- 基于 Android NDK 的学习之旅-----环境搭建
- android3.1以上系统中服务不能开机启动解决方案
- Android AVD创建及设置中各参数详解
- 程序媛也话Android 之 自定义控件(垂直方向滑动条)
- android 背景渐变色(shape,gradient)
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
- 转换图片成圆形--并且缩放 Bitmap、Java、Android 图片设计
- Android模拟器鼠标滑动出现C
- android 反编译 Apk