Android之AsyncTask异步加载
来源:互联网 发布:腾讯数据库有多大 编辑:程序博客网 时间:2024/05/20 04:47
今天总结的是android中的异步加载AsyncTask。android的UI线程(主线程)主要负责处理用户的按键事件、用户触屏事件及屏幕绘图事件等,因此开发者的其他操作不应该、也不能阻塞UI线程,否者UI界面将会出现停止响应的状况。为了避免UI线程失去响应的问题,android将耗时操作放在了新线程中完成,但是新线程也可能需要动态更新UI组件:比如需要从网上获取网页,然后在TextView中将其源代码显示出来,此时就应该将连接网络、获取网络数据的操作放在新线程中完成。AsyncTask<params,progress,result>是一个抽象类,通常被继承。其中有三个参数需要指定。params:启动任务执行的输入参数的类型。progress:后台任务完成的进度值的类型。result:后台执行任务完成后返回结果的类型。使用AsyncTask的三个步骤:1、创建AsyncTask子类,指定三个泛型参数,如果某个泛型参数不需要返回值的则可指定为Void。注意:AsyncTask子类一般都是UI主线程(Activity)中的内部类。2、根据需要实现AsyncTask类的方法。3、实例化AsyncTask子类,调用excute();方法开始耗时操作。示例代码:
public class MyAsyncTaskActivity extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(); setContentView(R.layout.main); //实例化AsyncTask类。 MyAsyncTask mMyAsncTask=new MyAsyncTask; //实例化的对象调用execute()方法开始执行耗时操作。 mMyAsyncTask.execute(); } //创建AsyncTask类的子类,指定三个泛型参数的类型,实现AsyncTask类的方法。 class MyAsyncTask extends AsyncTask<URL,Integer,String>{ //doInBackground()方法就是后台将要完成的任务,failed方法可以调用publishProgress(Progress values)方法更新新任务的执行进度。 procted String doInBackground(URL[] params){ } //onProExecute()方法在执行后台耗时操作之前调用,主要完成一些初始化的准备工作,比如在界面上显示进度条。 protected void onProExecute(){ } //onPostExecute()方法在执行完后台耗时操作后,系统会自动调用该方法,并将doInBackground()方法的返回值传给该方法。 protected void onPostExecute(String s){ } //onProgressUpdate()在DoInBackground()方法中调用publishProgress()方法更新任务的执行进度后,会触发该方法。 protected void onProgressUpdate(Integer valus){ } }}
0 0
- Android之AsyncTask异步加载
- Android异步加载之AsyncTask
- android异步加载之Handler、AsyncTask(一)
- Android之AsyncTask异步加载(二)
- Android之AsyncTask异步加载(三)
- Android AsyncTask异步加载
- Android有效加载图片 之 使用AsyncTask异步加载图片
- AsyncTask异步加载之图片下载
- Android 异步加载图片-AsyncTask
- Android 异步加载图片-AsyncTask
- Android--AsyncTask异步加载详解
- Android 异步加载数据 AsyncTask
- android 异步加载解决方案 AsyncTask
- Android异步加载AsyncTask详解
- Android异步加载AsyncTask详解
- Android中AsyncTask异步加载
- Android异步加载AsyncTask详解
- Android异步加载全解析之使用AsyncTask
- rust compile plugin的使用方法
- 【图像处理笔记】空间滤波基础
- 字符串操作
- android工程和目录详解
- 验房的注意事项
- Android之AsyncTask异步加载
- PE格式详细讲解8 – 输入表
- STL中的所有容器资料
- 《机器学习实战》学习笔记:绘制树形图&使用决策树预测隐形眼镜类型
- Cocos 2d-x 3.6 touch事件只有began 坑~
- 解决android:background背景图片被拉伸问题
- [leetcode][Binary Search] H-Index II
- android学习笔记(17)广播事件处理进阶(注册方法)
- IOS中宏定义