AsyncTask的三个属性值和四个步骤

一、关于AsyncTask的参数<Parms,Progress,Result>

在创建AsyncTask的子类时,必须给出这三个具体的类型值,尖括号是泛型的意思。

doInBackground(Params...)

publishProgress(Progress...)

onProgressUpdate(Progress...)

onPostExecute(Result)

可以知道它们都是传递给谁的,而圆括号里有...的参数可以理解为数组。

二、AsyncTask的四个步骤

1、onPreExecute():这个方法是在任务开始前进行的,它由UI线程(主线程)调用,即可以进行UI操作。在最后,我会给出Log的打印信息。

2、doInBackground(Params...):这个方法是onPreExecute()完成后,立即在后台进行的,用以执行任务,并将Result传给onPostExecute(Result)。另外,在此期间,可以调用publishProgress(Progress...),这个方法能够传递一些数据给onProgressUpdate(Progress...)。

3、onProgressUpdate(Progress...):在publishProgress(Progress...)被调用之后,此方法会由UI线程调用。所以利用publishProgress(Progress...)和onProgressUpdate(Progress...)就能够做出在加载或读取网络数据时的等待或缓冲的UI效果。我在最后给出的效果图有类似的功能。

4、onPostExecute(Result):在doInBackground(Params...)完成后,由UI线程调用,在这里处理Result。



代码.jpg


效果图.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,270评论 25 708
  • Android Handler机制系列文章整体内容如下: Android Handler机制1之ThreadAnd...
    隔壁老李头阅读 3,265评论 1 15
  • 今天我要写的东西可谓是鱼龙混杂,参差不齐。 第一件事: 培优完后,继续这两天的日常任务---看他们打乒乓球...
    天残土豆阅读 359评论 3 4
  • 《谷雨》汪贵沿 每当这个日子 我就想雨下个不停 下在人间 下在田里 下在心上 . 天上落粮食了 我们可以用碗去接 ...
    宽诗堂阅读 127评论 0 2
  • 莉莉给自己在驴友团报了名,狠下决心要做一些突破。回想起几年前的三次经历,自己像极了蹒跚学步的孩童,笨拙、艰难,出错...
    梨花绢阅读 204评论 0 0