`
ylzyd12345
  • 浏览: 121558 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
博客专栏
713488f4-d0a9-3f35-997f-199fb0cb3563
玩懂Log,打开Andro...
浏览量:10570
社区版块
存档分类
最新评论

AsyncTask异步任务(sundy深入浅出)之进程和线程

 
阅读更多

写在前面的话:本系列主要是学习sundy的Android深入浅出视频中的一些记录,心得。方便自己以后查阅。也供大家查看。欢迎交流,补充。

一般作为面试题(有些有答案,有些没有。问题一般从sundy老师思维导图中摘录,答案并非唯一标准,仅供参考):

 

1、AsyncTask是多线程么?

是的,并且用到了线程池


2、与Handler相比, AsyncTask消耗资源情况如何,为什么?

AsyncTask消耗的 资源更多,Handler比AsyncTask轻量

3、AsyncTask的定义?
Android为了降低异步操作开发难度,在Handler基础上提供了AsyncTask。AsyncTask就是一个封装过的后台任务类,顾名思义就是异步任务。

----------总结----------

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

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

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

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

3、AsyncTask三个状态:pending , running , finished

4、使用AsyncTask类,遵守的准则:

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

 

0
0
分享到:
评论

相关推荐

    异步任务AsyncTask

    在Android开发中,异步任务(AsyncTask)是一种常见的处理耗时操作的方式,尤其是在主线程中需要执行网络请求、数据库操作或大型数据处理时。它能够避免UI线程被阻塞,提供更好的用户体验。让我们深入了解一下`...

    Android的AsyncTask异步任务

    本篇文章将深入探讨Android的AsyncTask异步任务,以及如何在实践中应用。 首先,Android是一个基于事件驱动的系统,主线程(UI线程)负责处理用户交互,而复杂的计算或网络请求等耗时操作应在后台线程中执行,以免...

    android录音上传到php服务器,上传使用AsyncTask异步任务,绝对能用

    android录音上传到服务器,上传使用AsyncTask异步任务,包含PHP服务器端,绝对能用。 就这个功能搞了 近2天,网上的内容都是同质化的,基本都是一个方式实现的 很郁闷,这个亲测绝对能用,不会用的 联系

    安卓拍照上传录像监控录屏相关-android录音上传到服务器上传使用AsyncTask异步任务.rar

    在提供的资源中,"android录音上传到服务器,上传使用AsyncTask异步任务.rar" 提到了使用AsyncTask来处理这一问题。下面,我们将深入探讨Android系统中的这些功能及其与AsyncTask的结合使用。 1. **拍照上传**: ...

    AsyncTask异步加载图片

    总的来说,`AsyncTask`是Android平台上的一个强大工具,能够帮助开发者轻松地实现异步操作,避免UI线程阻塞,提高应用的响应速度和用户体验。然而,对于大量或者复杂的异步任务,可能需要考虑使用更高级的解决方案,...

    AsyncTask异步任务三.rar

    在Android应用开发中,异步任务(AsyncTask)是一个非常重要的组件,主要用于处理那些需要在后台线程执行但又需要与UI交互的操作。AsyncTask使开发者能够轻松地在后台线程执行耗时操作,然后在主线程更新UI,避免了...

    02_AsyncTask_简单演示AsyncTask异步操作

    AsyncTask_简单演示AsyncTask异步操作,写一个简单的AsyncTask异步操作解决上一篇文章提到的线程阻塞问题,对应我的博客《网易博客迁移:Android专题之AsyncTask(二)简单演示AsyncTask异步操作》,有问题欢迎留言...

    一个AsyncTask异步任务的操作实例

    在这个“一个AsyncTask异步任务的操作实例”中,我们将深入探讨AsyncTask的工作原理、使用方法以及如何在实际项目中应用。 1. **AsyncTask基本结构**: AsyncTask由三个泛型参数定义:`Params`, `Progress`, 和 `...

    AsyncTask 异步多线程加载Demo

    在Android开发中,AsyncTask是一种轻量级的异步任务处理机制,主要用于UI线程与后台线程之间的通信,以实现耗时操作的异步执行,避免阻塞主线程,提高用户体验。`AsyncTask`类提供了简单易用的接口,使得开发者能够...

    Android AsyncTask用法和异步加载图片.rar

    总的来说,`AsyncTask`是Android中实现简单异步操作的有效工具,特别是对于轻量级的网络请求和计算任务。然而,对于更复杂的多线程需求,如大量的并发任务或复杂的任务协调,开发者可能需要考虑使用`IntentService`...

    sundy深入浅出部分源码 、android

    【标题】"sundy深入浅出部分源码 、android" 涉及的知识点主要集中在Android开发和源码分析两个领域,Sundy大师的教程是这个主题的关键资源。在这个教程中,Sundy可能深入讲解了Android应用开发的核心概念和技术,...

    应用源码之录音上传到服务器,上传使用AsyncTask异步任务.zip

    应用源码之录音上传到服务器,上传使用AsyncTask异步任务

    AsyncTask异步线程之基础

    AsyncTask是Android提供的一种轻量级的异步处理机制,适用于执行短时间的后台任务,然后在UI线程更新结果。本文将深入探讨AsyncTask的基本用法、工作原理以及如何使用它来获取网络数据和展示网络图片。 首先,我们...

    安卓Android源码——android录音上传到服务器,上传使用AsyncTask异步任务.rar

    这个压缩包文件"安卓Android源码——android录音上传到服务器,上传使用AsyncTask异步任务.rar"包含了一个示例,它演示了如何利用Android SDK提供的API来录制音频,并通过AsyncTask异步任务将其上传到服务器。...

    Android AsyncTask异步处理下载网页

    Android提供了一种便捷的机制,名为`AsyncTask`,用于在后台线程执行这些任务,同时允许在主线程更新UI。`AsyncTask`是一个轻量级的框架,设计用来简化在Android应用程序中进行后台操作的过程。 `AsyncTask`包含三...

    AsyncTask异步任务

    在Android开发中,AsyncTask是一种常用的轻量级异步任务处理框架,主要用于简化在UI线程与后台线程之间的数据同步。尽管这里的标题提到的是"直接使用的C++封装库",但通常AsyncTask是Android SDK中的一个Java类,...

    Android 使用AsyncTask异步更新UI界面

    在Android应用开发中,UI(用户界面)的流畅性至关重要,因为这直接影响到用户体验。为了在主线程之外执行耗时操作,比如网络请求或...不过,理解`AsyncTask`的工作原理仍然是了解Android多线程和异步编程的重要一步。

    Android开发AsyncTask异步处理任务

    它的核心设计思想是简化多线程编程,将异步任务分为三个主要阶段:onPreExecute()、doInBackground()和onPostExecute()。 1. **onPreExecute()**: 这个方法在主线程中运行,通常用于初始化任务,例如显示进度...

    Android Handler AsyncTask 异步加载

    在Android应用开发中,Handler、AsyncTask和异步加载是三个关键的概念,它们主要用于解决UI线程阻塞问题,提高应用程序的响应速度和用户体验。下面将详细解释这三个概念及其相互关系。 **Handler(处理器)** ...

    AsyncTask异步线程下载图片示例

    - `AsyncTask`不能跨进程使用,只能在同一个进程中实例化和执行。 - 由于Android系统的限制,当Activity被销毁后,相关的`AsyncTask`可能会被取消。因此,如果需要在Activity退出后继续执行任务,应考虑使用其他...

Global site tag (gtag.js) - Google Analytics