您的位置:首页 > 其它

AsyncTask的使用及参数、方法的介绍

2017-08-15 13:00 218 查看
在安卓开发的时候,为了避免OOM问题或者提高程序运行速度,一般不会在主线程中做耗时的操作。因此当有需要做耗时操作的时候,都会开启一个子线程,通过handler来获取数据后更新UI,而Android给我们提供了一个类AsyncTask,可以看做是 thread+handler的结合。

AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程。

 
关于AsyncTask的几个方法和参数具体看代码中注释: public void start(View view){
//第一个参数是doInbackground回调中传入的参数
//第二个参数是进度,onProgressUpdate的参数类型
//第三个参数是:doInbackground返回值类型,onPostExecute传入的参数类型
new AsyncTask<Integer, Integer, Integer >() {

@Override
protected void onPreExecure(){
//放在主线程中,准备执行前的回调,调用这个方法后才调用doInBackground
}
@Override
protected Void doInBackground(Integer... params) {
// doInBackground 是子线程执行耗时的操作
return result;
}

@Override
protected void onProgressUpdate(Integer[] values) {
//主线程中执行,进度改变时的回调
};
@Override
protected void onPostExecute(Void result){
//放在主线程中,执行完成的回调,doInBackground结束后调用这个方法
}
}.execute(0,100);
}
关于进度的更新,在执行doInBackground方法时可以使用 publishProgress(result)方法把进度传递出去,在onProgressUpdate方法中接收,之后在UI中显示出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: