使用AsyncTask实现异步任务-android开发

AsyncTask用来创建异步任务的类,它简化了操作,不再需要编写任务线程和Handler实例即可完成相同的任务。为了让UI进程更轻量,我们通常把繁重的任务放入后台线程执行。

AsyncTask的定义:

三种泛型类型分别代表“启动任务执行的输入参数”、“后台任务执行的进度”、“后台计算结果的类型”。在特定场合下,并不是所有类型都被使用,如果没有被使用,可以用Java.lang.Void类型代替。

AsyncTask基本方法(需要Override):

  • doInBackground():在后台实际运行的代码。在这个方法中,我们可以使用 publishProgress() 方法把计算进度发送给UI线程。
  • onPreExecute():在后台代码运行之前执行。一般用来在执行后台任务前对UI做一些标记。
  • onPostExecute():当 doInBackground 方法执行完成之后调用,doInBackground方法的执行结果传入到了这个方法。
  • onProgressUpdate()在调用 publishProgress() 时,此方法被执行。它接收 doInBackground 方法的执行进度信息。这个方法可以用来把进度信息更新到UI上。

AsyncTasks的使用步骤:

  1. 创建一个继承AsyncTask的类
  2. 实现上面的方法(Override)
  3. 执行异步任务

使用AsyncTasks要注意什么:

  • AsyncTask实例必须在UI线程中创建
  • 不要调用实现的方法,它们是自动调用的
  • AsyncTask只能被调用一次

AsyncTask的简单使用示例

首先,使用Android Stuidio创建一个空项目;

使用AsyncTask实现异步任务-android开发

创建一个简单的UI,activity_main.xml:

MainActivity中的代码:

编译执行:

使用AsyncTask实现异步任务-android开发

复杂一点的例子:简单的注册登录功能

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注