Android中通过AsyncTask类来制作炫酷进度条的实例教程

2019-12-10 18:02:52王旭
易采站长站为您分析Android中通过AsyncTask来制作炫酷进度条的实例教程,借助AsyncTask类的线程操作方法来管理异步任务,需要的朋友可以参考下  

AsyncTask (API level 3,所以几乎所有目前在市面上流通的 Android 版本皆可使用)
是除 Thread 外的另一种选择,Android 团队鼓励主执行绪(UI thread) 专注于操作 & 画面的流畅呈现,
其余工作 (如网络资料传输、档案/磁碟/资料存取) 最好都在背景执行;
Thread 通常要搭配 Handler 使用,而 AsyncTask 用意在简化背景执行 thread 程序码的撰写。

如果您预期要执行的工作能在几秒内完成,就可以选择使用 AsyncTask,若执行的时间很长,
Android 则强烈建议采用 Executor, ThreadPoolExecutor and FutureTask。

要使用 AsyncTask,必定要建立一个继承自 AsyncTask 的子类别,并传入 3 项资料:

  • Params -- 要执行 doInBackground() 时传入的参数,数量可以不止一个
  • Progress -- doInBackground() 执行过程中回传给 UI thread 的资料,数量可以不止一个
  • Rsesult -- 传回执行结果

    若您没有参数要传入,则填入 Void (注意 V 为大写)。

    AsyncTask 的运作有 4 个阶段:

    • onPreExecute -- AsyncTask 执行前的准备工作,例如画面上显示进度表,
    • doInBackground -- 实际要执行的程序码就是写在这里,
    • onProgressUpdate -- 用来显示目前的进度,
    • onPostExecute -- 执行完的结果 - Result 会传入这里。

      除了 doInBackground,其他 3 个 method 都是在 UI thread 呼叫


      炫酷进度条实例
      我们以一个实例来说明,“点击按钮开始下载QQAndroid安装包,然后显示一个对话框来反馈下载进度”。我们先初始化一个对话框,由于要显示进度,我们用Github上面一个能够显示百分比的进度条 NumberProgressbar,启动任务的按钮我们使用 circlebutton,一个有酷炫动画的按钮,Github上面有很多非常好的开源项目,当然炫酷的控件是其中一部分了,后面有机会,会去学习一些比较流行的控件它们的实现原理,今天就暂且拿来主义了~~。