`
德安德鲁
  • 浏览: 45017 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

AsyncTask笔记

 
阅读更多

AsyncTask定义了三种泛型类型 Params,Progress和Result。

  • Params 启动任务执行的输入参数,比如HTTP请求的URL。
  • Progress 后台任务执行的百分比。
  • Result 后台执行任务最终返回的结果,比如String。

使用过AsyncTask 的同学都知道一个异步加载数据最少要重写以下这两个方法:

  • doInBackground(Params…) 后台执行,比较耗时的操作都可以放在这里。注意这里不能直接操作UI。此方法在后台线程执行,完成任务的主要工作,通常需要较长的时间。在执行过程中可以调用publicProgress(Progress…)来更新任务的进度。
  • onPostExecute(Result)  相当于Handler 处理UI的方式,在这里面可以使用在doInBackground 得到的结果处理操作UI。 此方法在主线程执行,任务执行的结果作为此方法的参数返回

有必要的话你还得重写以下这三个方法,但不是必须的:

  • onProgressUpdate(Progress…)   可以使用进度条增加用户体验度。 此方法在主线程执行,用于显示任务执行的进度。
  • onPreExecute()        这里是最终用户调用Excute时的接口,当任务执行之前开始调用此方法,可以在这里显示进度对话框。
  • onCancelled()             用户调用取消时,要做的操作

使用AsyncTask类,以下是几条必须遵守的准则:

  • Task的实例必须在UI thread中创建;
  • execute方法必须在UI thread中调用;
  • 不要手动的调用onPreExecute(), onPostExecute(Result),doInBackground(Params...), onProgressUpdate(Progress...)这几个方法;
  • 该task只能被执行一次,否则多次调用时将会出现异常;
分享到:
评论

相关推荐

    xamarin学习笔记A14(安卓AsyncTask和RunOnUiThread)

    在Xamarin.Android环境下,开发者可以利用Java原生的AsyncTask类和Activity的RunOnUiThread()方法来实现这样的功能。下面将详细探讨这两个知识点。 一、AsyncTask类 AsyncTask是Android SDK提供的一种轻量级异步...

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

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

    Pro Android学习:AsyncTask小例子

    这是Pro Android学习系列中AsyncTask部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512

    Android开发笔记之:AsyncTask的应用详解

    AsyncTask的介绍及基本使用方法关于AsyncTask的介绍和基本使用方法可以参考官方文档和《Android开发笔记之:深入理解多线程AsyncTask》这里就不重复。AsyncTask引发的一个问题上周遇到了一个极其诡异的问题,一个小...

    Android学习笔记(十)——实现新闻列表

    【第一部分】历史文章: Android学习笔记(一)——创建第一个Android项目 ...Android学习笔记(六)——自定义ListView布局+AsyncTask异步任务 Android学习笔记(七)——数据存储(共享参数Share

    Android学习笔记(三二):线程:后台异步任务AsyncTask.doc

    AsyncTask是Android中用于在后台线程执行耗时操作并更新UI的一种机制,它简化了在主线程和工作线程之间交互的过程。在Android中,由于UI操作必须在主线程中进行,因此需要异步处理来避免阻塞用户界面。AsyncTask就是...

    Android开发笔记之:深入理解多线程AsyncTask

    `AsyncTask`是Android提供的一种轻量级的异步处理机制,它简化了在主线程和工作线程之间的交互,使得开发者可以更方便地进行复杂的任务执行而不阻塞用户界面。本篇文章将深入探讨`AsyncTask`的工作原理和如何在实际...

    Android群英传笔记

    笔记可能涵盖HTTP请求库如OkHttp的使用,JSON解析库如Gson或Jackson的应用,以及如何处理异步任务和线程管理,比如使用AsyncTask或Retrofit。 此外,权限管理在Android系统中至关重要,尤其是从Android 6.0(API...

    最新最全的Android开发笔记

    除此之外,笔记还涉及了Android的多线程处理,包括Handler、Looper、Message的使用,以及AsyncTask的介绍。这些内容对于优化应用性能和实现后台操作至关重要。 网络编程是现代应用不可或缺的一部分,笔记中详细讲述...

    Android中异步类AsyncTask用法总结

    最近整理笔记的时候,看到有关AsyncTask不是很理解,重新疏导了一下,有在网上找了一些资料,个人不敢独享,一并发在这里与大家共勉 这里有两种解释的方法,各有侧重点: 第一种解释: Async Task 简介: AsyncTask...

    android 很好的学习笔记

    同时,讲解了线程和异步处理,包括AsyncTask和Handler,这对于优化应用性能和用户体验至关重要。 在网络编程方面,笔记将引导读者理解Android中的HttpURLConnection和Volley库,如何发送HTTP请求,接收并解析网络...

    安卓笔记——安卓详细笔记汇总

    - **异步任务和线程管理**:AsyncTask、Handler、Thread、Runnable等,解决安卓应用的UI线程阻塞问题。 - **权限管理**:在Android 6.0及以上版本,应用需要动态请求权限。 - **AndroidManifest.xml**:应用的配置...

    云笔记安卓端源码(仅供学习用)

    有道云笔记可能采用了AsyncTask、Handler、Thread或ExecutorService等机制进行异步操作,比如数据同步。 7. **性能优化** 为了提供流畅的用户体验,源码中可能存在各种性能优化策略,如内存管理、数据库查询优化、...

    Android开发教程笔记完全版

    笔记可能包括Android的网络API,如HttpURLConnection和OkHttp的使用,以及如何处理异步任务,如使用AsyncTask或者IntentService。对于更复杂的应用,可能会讲解到Retrofit和 Volley这样的网络库。 此外,笔记还可能...

    Android 局域网简易云端笔记系统源码

    5. **多线程处理**:考虑到网络通信可能会阻塞主线程,影响应用的响应速度,开发者可能采用了AsyncTask或Handler/Looper机制进行异步处理。这样,网络请求和数据同步都在后台线程执行,不会影响用户界面的流畅性。 ...

    黑马安卓核心基础笔记

    9. **多线程和AsyncTask**:Android应用通常在主线程中运行,为了进行耗时操作,需要学习如何使用线程和AsyncTask来避免阻塞用户界面。 10. **Android权限管理**:理解运行时权限的概念,学习如何在Android 6.0及...

    黑马程序员安卓核心笔记

    此外,还介绍了如何使用AsyncTask或者Retrofit进行异步网络请求。 服务与广播接收者是安卓系统中重要的后台运行组件,笔记阐述了如何创建和管理Service,以及利用BroadcastReceiver响应系统或自定义广播。 最后,...

Global site tag (gtag.js) - Google Analytics