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中显示出来。
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中显示出来。
相关文章推荐
- Bowtie2使用方法与参数详细介绍
- 内核子系统或设备驱动可以直接编译到内核,也可以编译成模块,如果编译到内核,可以使用前一节介绍的方法通过内核启动参数来向它们传递参数,如果编译成模块,则可以通过命令行在插入模块时传递参数,或者在运行时,
- AsyncTask的介绍及基本使用方法
- AsyncTask的介绍及基本使用方法
- AsyncTask的介绍及基本使用方法
- AsyncTask的介绍使用方法
- expdp\impdp及exp\imp使用方法及参数介绍
- shell脚本中的grep命令参数使用方法介绍(转载)
- Morris.js的参数说明和使用方法介绍
- 【专题】window.open的例子和使用方法以及参数说明(完整版)
- 终于找到了可以使用数组作为Oracle程序包参数的方法
- window.open使用方法以及参数说明
- 测试驱动开发方法介绍及CPPUnit使用指南
- 测试驱动开发方法介绍及CPPUnit使用指南
- fstream的使用方法介绍
- window.open使用方法以及参数说明
- linux file.src.rpm 使用方法的简单介绍
- window.open使用方法以及参数说明
- 非窗口类中使用定时器的方法及相关知识的介绍
- Recordset.Open方法参数介绍