`
朱润泽
  • 浏览: 47286 次
  • 性别: Icon_minigender_1
  • 来自: 江西
社区版块
存档分类
最新评论

异步任务类AsyncTask下分析

 
阅读更多

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

. 异步任务

 

异步任务可以适当的/ 易用与UI 线程当中,这个类允许执行后台操作,并在不操作线程和handler 的情况下将处理后的数据返回给UI 线程。

异步任务的设计是线程类(Thread )和Handler 类的一个辅助类,该类并不构成通用线程框架。异步任务建议在处理耗时较短的操作上使用(以秒单位的操作上),如果需要线程需要处理耗时较长的操作,建议使用java java.util.concurrent 包中的Executor ThreadPoolExecutor FuturTeask 类。

异步任务类是个抽象类,使用时必须使用子类,并在子类中必须重写doInBackground() 方法。

 

1 )当异步任务执行过程中,可以分为下4 步:

 

1.onPreExecute()

异步任务开始执行时直接调用这个方法。(即execute() 调用后)这个方法里功能通常所让UI 中显示进度条。

 

2.doInBackground(Params …)

该方法在onPreExecute() 执行完后直接执行,UI 中的参数直接传递到这个方法中,参数被处理后有这个方法传递给最后的一个方法(onPostExecute() 方法)。同时在处理过程中通过调用publishProgress() 方法可以,引发onProgressUpdate 方法的调用

 

3.onProgressUpdate(Progress …)

更新UI

4.onPostExecute(Result)

后台处理完成后执行该方法。后台数据传递给该方法。

 

2 )取消任务

在任何时候只要执行cancel(boolean) 方法,当前任务就会被取消,随后引发isCancelled() 方法的执行,该方法返回true.isCancelled() 方法执行之后,任务不再执行onPostExecute() ,而是执行onCancelled(Object) 方法。

 

注意:

1. 异步任务在UI 线程中被声明。

2. 异步任务在UI 线程中被启动执行。

3. 不需要手动调用onPreExecute()/onPostExecute()/doInBackground() 等方法。

4. 异步任务只能启动一次,试图启动两次会抛出异常。

 

参数的类型

AsyncTask<Params, Progress, Result>

 

1.Params UI 线程传递给后台操作的数据类型(即execute() 方法的参数类型)

2.Progress 后台处理过程中的数据类型(即publishProgress() onProgressUpdate 参数接受的类型)

3.Result. 后台处理后结果的返回类型。

这些内容都是帮助文档的内容。有不准确的地方还请指出来。

分享到:
评论

相关推荐

    异步操作类AsyncTask

    在Android开发中,异步操作类AsyncTask是一个非常重要的工具,它允许开发者在后台线程执行耗时操作,然后在UI线程更新结果,避免了因阻塞主线程而导致的ANR(Application Not Responding)错误。AsyncTask的源码解析...

    Android学习笔记(三二):线程:后台异步任务AsyncTask_IT168文库

    ### Android学习笔记(三二):线程:后台异步任务AsyncTask #### 一、AsyncTask概述 在Android开发中,为了确保用户界面的流畅性与应用性能,经常需要在后台执行耗时操作,例如网络请求、数据库操作或文件读写等...

    Android中异步类AsyncTask用法总结

    本文总结分析了Android中异步类AsyncTask用法。分享给大家供大家参考,具体如下: 最近整理笔记的时候,看到有关AsyncTask不是很理解,重新疏导了一下,有在网上找了一些资料,个人不敢独享,一并发在这里与大家共勉...

    android异步任务框架源码

    Android中的异步任务通常通过AsyncTask类来实现。AsyncTask是一个轻量级的组件,设计用于在UI线程和后台线程之间进行通信。它有三个泛型参数,分别代表Progress(进度类型)、Params(输入参数类型)和Result(结果...

    Android AsyncTask 源码解析

    通过以上对 AsyncTask 的源码解析和使用方法的介绍,你应该对如何在 Android 应用中高效地使用异步任务有了更深入的理解。在实际开发中,正确理解和使用 AsyncTask 可以帮助我们编写出更加流畅、响应快速的应用程序...

    Android开发之AsyncTask机制及使用细节例子源码

    在Android应用开发中,异步任务(AsyncTask)是一个常用工具,用于在后台线程执行耗时操作,然后在UI线程更新结果,避免阻塞用户界面。AsyncTask的使用和内部机制对于任何Android开发者来说都至关重要。让我们深入...

    AndEngine_分析之三-----AsyncTask_BaseActivity备忘

    当一个异步任务被执行时,整个过程会经历以下四个步骤: 1. **onPreExecute()**: - 这个方法会在UI线程上被调用,并且是在任务执行后立即调用。 - 通常用于设置任务的初始化工作,比如显示一个进度条在用户界面...

    01_AsyncTask_演示线程阻塞

    `AsyncTask`是Android提供的一种轻量级的异步任务处理框架,它允许开发者在后台线程执行耗时操作,然后在UI线程更新结果,避免了阻塞主线程导致的ANR(Application Not Responding)问题。这篇我们将深入探讨`...

    AsyncTask 源码解析

    AsyncTask 是 Android 开发中常用的一个轻量级异步任务处理框架,主要用于在后台线程执行耗时操作,然后在 UI 线程更新界面。它简化了多线程编程,使得开发者能够更加便捷地处理异步任务。本文将深入探讨 AsyncTask ...

    AsyncTask 与Thread加Handler处理消息比较

    `AsyncTask`是Android SDK提供的一种轻量级的异步任务处理机制,它主要用于短时间的后台操作,如网络请求、数据解析等。`AsyncTask`包含三个泛型参数,分别代表后台任务的输入类型、进度类型和结果类型。其主要步骤...

    Android AsyncTask源码分析

    Android的AsyncTask是一个轻量级的异步任务框架,它被设计用来简化在主线程与后台线程之间进行数据交互的复杂性。由于Android的UI更新必须在主线程中进行,AsyncTask通过内部封装Handler和线程池,使得开发者可以在...

    Android中AsyncTask与handler用法实例分析

    **AsyncTask** 是一个轻量级的异步任务框架,适合用于执行较短的后台操作,然后更新UI。AsyncTask有三个泛型参数:`Params`(后台任务的输入参数)、`Progress`(后台任务的进度)和`Result`(后台任务的输出结果)...

    AsyncTask异步线程实现加载网络图片

    此外,`AsyncTask`的执行是序列化的,即一次只能有一个`AsyncTask`在执行,如果需要并行执行多个任务,可能需要使用其他并发工具,如线程池。 总的来说,`AsyncTaskDemo`应该涵盖了以下知识点: - Android异步处理...

    人工智能-项目实践-多任务-使用AsyncTask实现的多任务多线程下载的Demo,支持断点续传.zip

    本项目实践基于"人工智能-项目实践-多任务-使用AsyncTask实现的多任务多线程下载的Demo,支持断点续传.zip",旨在提供一个使用Android的AsyncTask类进行多任务、多线程下载,并且支持断点续传功能的示例。...

    AsyncTask 的使用

    Params表示异步任务的输入参数类型,Progress表示后台任务执行过程中的进度类型,Result表示任务执行后的返回结果类型。在实际使用中,你可以根据具体需求定义这些类型。 AsyncTask的主要方法包括: 1. `...

    Android异步加载文字

    在Android开发中,异步加载是一项至关重要的技术,主要用于解决UI线程阻塞问题,提升应用性能和用户体验。...同时,这也是Android应用开发进阶过程中不可或缺的一部分,为处理更复杂的异步任务和网络请求奠定了基础。

    异步解析Json任务

    1. 异步任务应该在UI线程之外执行,以避免阻塞用户界面。 2. 在`onPostExecute()`中更新UI,因为这是唯一可以在主线程中安全执行的方法。 3. 使用`publishProgress()`和`onProgressUpdate()`来显示进度条或者更新...

    安卓Android源码——listview实现图片的异步加载.zip

    2. **AsyncTask**:Android提供了一个轻量级的异步任务类AsyncTask,它适合处理一些短暂的后台操作。在这个示例中,可能使用AsyncTask来下载图片并更新ListView的Adapter。 3. **图片缓存策略**:为了提高性能,...

    开源中国源码学习数据篇(一)之android-async-http框架和AsyncTask

    另一方面,`AsyncTask`是Android SDK内置的异步任务类,它主要用于简化短时间、耗时的操作,如网络请求、数据库操作等。`AsyncTask`有三个泛型参数,分别代表`Progress`(进度)、`Params`(输入参数)和`Result`...

    java android业务异步编程小技巧

    本文将深入探讨Java和Android平台上的异步编程小技巧,并以"android业务异步编程小技巧.zip"和"java业务异步编程小技巧.zip"中的示例作为参考,讲解如何有效地进行异步任务处理。 首先,我们要理解Android应用中的...

Global site tag (gtag.js) - Google Analytics