模板模式

Template method

行为设计模式中的一种,定义一个操作中算法的框架(abstract class),而将一些步骤推迟到子类中,让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。

实例 Android AsyncTask

public abstract class AsyncTask<Params, Progress, Result>

参数含义:
Params :启动任务执行的输入参数
Progress:后台任务执行的进度
Result:后台计算结果的类型

一个异步任务的执行一般包括以下几个步骤:

  1. execute(Params... params),在UI线程中调用此方法,触发异步任务的执行。
  2. onPreExecute(),在UI线程中运行,在后台任务执行前,可以对对UI做一些操作。
  3. onPreExecute(Params... params),在子线程中运行的操作,此方法将接收输入参数并返回结果。在执行过程中可以调用publishProgress(Progress... values)来更新进度信息。
  4. onProgressUpdate(Progress... values),在在后台调用publishProgress(Progress... values)时,在UI线程中运行,可以将进度信息更新到UI组件上。
  5. onPostExecute(Result result),在UI线程上运行,当后台操作结束时,此方法将会被调用,返回值会传递到此方法中

总之,AsyncTask内部封装了onPreExecute 、onPreExecute、onPostExecute这几个逻辑流程,可以根据自己的需要重写方法,可以方便的通过异步任务来完成耗时的操作以及更新UI。

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

推荐阅读更多精彩内容