首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 )

构造函数相关源码注释 一、AsyncTask 参数简介 ---- AsyncTask 泛型类型 : 异步任务开始时 , execute() 方法传入的参数类型 , 也是 doInBackground..., 结果类型 , onPostExecute() 方法传入参数类型 , 或 onCancelled() 方法参数 ; 二、AsyncTask 方法简介 ---- AsyncTask 常用方法解析 : doInBackground...() : 核心方法 , 执行异步任务 , 该方法在 子线程 中执行 ; onPreExecute() : 在 doInBackground() 执行前先执行的方法 , 主线程 中执行 , 可更新 UI...界面 ; onProgressUpdate() : 调用 publishProgress() 回调的方法 , 主线程 中执行 , 可更新 UI 界面 ; onPostExecute() : doInBackground...() 方法的输入参数类型 Result 是返回值类型 , 也是 AsyncTask 的 doInBackground() 方法的执行完毕的返回值类型 RunnableFuture 接口简介 : 该接口继承

67300
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android异步消息机制 从源码层面解析(2)

    doInBackground(Params… params) 此方法在子线程中执行,用于执行异步任务,注意这里的params就是AsyncTask的第一个参数类型。...onPostExecute(Result result) 此方法在主线程中执行,在doInBackground方法执行完成以后此方法会被调用,其中result的类型就是AsyncTask传入的第三个参数类型...,它的值就是doInBackground方法的返回值。...当要执行上述下载任务时,可以通过如下方式来完成: //在主线程中调用,执行后就会执行doInBackground等方法 URL url = new URL("http://192.168.43.21:8080...在上面的案例中doInBackground方法里的代码将会执行,当执行到publishProgress()方法时,会不断将进度信息传递给onProgressUpdate()方法(后面的分析中会解释为什么

    52721

    Android开发笔记(四十九)异步任务处理AsyncTask

    可设置为String类型或者自定义的数据结构 下面是要重写的方法,不能直接调用: doInBackground : 异步处理操作都放在该方法中,params参数对应execute方法的输入参数。...该方法运行于分线程,所以不能操作UI,其他方法都能操作UI onPreExecute : 在doInBackground执行之前调用 onProgressUpdate : doInBackground...: doInBackground方法中调用cancel时会触发该方法 下面是可直接调用的方法: execute : 开始执行异步处理任务。...该方法只能在doInBackground方法中调用,调用后会触发onProgressUpdate方法。 cancel : 取消任务。...该方法调用后,doInBackground的处理立即停止,并且接着调用onCancelled方法,而不会调用onPostExecute方法。 get : 获取处理结果。

    97220

    Android十八章:ASYNCTASK分析一波

    同时AsyncTask是一个抽象的泛型类 public abstract class AsyncTask{} Params代表参数类型(doInBackground...onPostExecute的参数),如果asynctask不需要传递参数就用Void来代替上述三个参数类型 AsyncTask 4个核心方法 onPreExecute() 异步开始前会执行该方法,用于显示dialog doInBackground...传入参数为doInBackground的返回值. ps: 当doInBackground的线程被取消就会回调给onCancelled这个方法,此方法被调用onPostExecute就不会调用了。...总结: asynctask对象要在主线程创建,并调用execute方法 不能直接调用doinbackground方法 一个asynctask对象只执行一次 3.0之前asynctask用并行线程池执行,...Process.THREAD_PRIORITY_BACKGROUND); //noinspection unchecked result = doInBackground

    40430

    Android多线程-AsyncTaskyi(一)

    (2)doInBackground(Params…params), 抽象方法,必须实现,该方法在线程池中执行,用于执行异步任务,将在onPreExecute方法执行后执行。...此外doInBackground方法会将计算的返回结果传递给onPostExecute方法。...(4)onPostExecute(Result), 在主线程中执行,在doInBackground 执行完成后,onPostExecute 方法将被UI线程调用,doInBackground 方法的返回值将作为此方法的参数传递到...我们这里再强调一下它们的执行顺序,onPreExecute方法先执行,接着是doInBackground方法,在doInBackground中如果调用了publishProgress方法,那么onProgressUpdate...方法将会被执行,最后doInBackground方法执行后完后,onPostExecute方法将被执行。

    62620

    【Android 电量优化】电量优化 ( JobScheduler | JobService | AsyncTask )

    AsyncTask 4个方法解析 : onPreExecute : doInBackground 之前执行的方法, 一般在该方法中执行初始化操作 ( 主线程, 可以更新 UI ) doInBackground...: 主要的耗时操作是在该方法中执行的 ( 非主线程, 不能更新 UI ) onProgressUpdate : 在 doInBackground 中调用了 publishProgress 方法, 就会回调该方法..., 一般情况下是在该方法中执行更新 UI 的操作 ( 主线程, 可以更新 UI ) onPostExecute : doInBackground 执行完毕后 , 调用 return 方法后 , 该方法会被调用...( 主线程, 可以更新 UI ) 执行顺序 : onPreExecute -> doInBackground -> onProgressUpdate -> onPostExecute 三、JobScheduler...(TAG, "JobAsyncTask 执行 : " + jobData); return null; } /** * 在 doInBackground

    1.2K00

    详解Android 中AsyncTask 的使用

    ,触发任务 B、OnPreExecute(): execute(Params… params)调用后立即执行,一般用于在执行后台任务前对UI做一些标记; 例如,可以在此处显示进度对话框; C、doInBackground...().onProgressUpdate().onPostExecute()这几个方法; D、不能在doInBackground(Params… params) 中更改组件信息; E、一个任务实例只能执行一次...(String... params) { Log.i("msg","doInBackground(String... params)..."); try { /* 网络访问方式 二 */ /*...() 返回的结果; * 此方法在 doInBackground() 方法执行结束后执行,运行在UI线程中, * 可以对UI进行更新 */ protected void onPostExecute...+result.getHeight()); } /** * 方法括号中的Integer 对应AsyncTask 中的第二个参数; * 在doInBackground() 中每次调用publishProgress

    1.1K20

    AsyncTask源码分析

    怎样使用自定义的Executor AsyncTask的几个主要方法讲解 讲解之前我们先来回顾一下AsyncTask的几个主要方法 Void onPreExecute() 在task 任务开始执行的时候调用,在doInBackground...(Params… params)方法之前调用,在主线程中执行 - Result doInBackground(Params… params) 主要用来执行耗时操作,在子线程中执行,Params为我们参数的类型...当我们调用 publishProgress()方法的时候,会调用 onProgressUpdate()这个方法 Void onPostExecute(Result result) 在doInBackground...方法,这也就是为什么我们的doInBackground。...方法是在子线程里面执行的,执行完doInBackground()方法会把结构传递给我们的postResult(result)方法,在result方法,会调用handler发送消息, 接着再handler

    34200
    领券