首页
JAVA笔记
数据库笔记
混乱记忆
小站记
您现在的位置
android AsyncTask 超简单入门
简介: AsyncTask 是 android 提供的异步调用机制,主要是为了简化异步操作,主要应用场景是http 网络请求场景

为什么说 AsyncTask 是为了简化异步操作的封装呢?其实 我们也可以用 Handler 来做异步操作的实现,但是如果用handler 实现的代码的质量要求比较高,除了要用到 thread 多线程的知识,没有一定功底的开发人员封装的实现,不能较好的做到代码复用。

 

首先介绍下如果使用 AsyncTask 那么就要做哪些事情

子类必须要实现 doInBackground 函数其他函数可自由选择。该函数执行在后台进程中,返回值将作为onPostExecute 的执行参数。

onPostExecute 函数会执行在 UI 线程中,doInBackground 函数被执行完之后才会调用该函数,主要作用是根据传入参数更新 UI 界面。

onProgressUpdate 函数在主线程执行,用于显示任务执行的进度,需要在doInBackground  函数中调用publishProgress 才能触发,每次调用触发一次。

onPreExecute 函数在 execute 执行之后doInBackground 执行之前。主要进行 UI 的初始化操作,例如初始话进度条对话框。

onCancelled 函数将在 task 被取消之后即cancel被执行之后,可进行一些清理操作。

 

介绍完调用各函数的关系之后我们来看继承时需要设置的3个范型

private class task extends AsyncTask<String, String, String>

 

//AsyncTask<>的参数类型由用户设定,这里设为三个String
//第一个String代表输入到任务的参数类型,也即是doInBackground()的参数类型
//第二个String是doInBackground()执行过程中通过publishProgress()发消息时的参数,也就是onProgressUpdate函数接收到的数据类型。
//第三个String是doInBackground()的返回值类型,和onPostExecute()的参数类型