Android 多线程总结

AsyncTask: 为 UI 线程与工作线程之间进行快速的切换提供一种简单便捷的机制。适用于当下立即需要启动,但是异步执行的生命周期短暂的使用场景。
HandlerThread: 为某些回调方法或者等待某些任务的执行设置一个专属的线程,并提供线程任务的调度机制。
IntentService: 适合于执行由 UI 触发的后台 Service 任务,并可以把后台任务执行的情况通过一定的机制反馈给 UI。
Loader:适合在 Activity 或者 Fragment 中使用 Loader 可以方便的实现异步加载的框架
ThreadPool: 把任务分解成不同的单元,分发到各个不同的线程上,进行同时并发处理。

  1. AsyncTask:
    一个AsyncTask仅执行一次,不能重复执行,快餐类的线程,一次用完。
    AsyncTask使用的一个典型场景:用户切换到某个界面,触发了界面上的图片的加载操作,因为图片的加载相对来说耗时比较长,我们需要在子线程中处理图片的加载,当图片在子线程中处理完成之后,再把处理好的图片返回给主线程,交给 UI 更新到画面上
    要掌握AsyncTask,我们就必须要一个概念,总结起来就是: 3个泛型,4个步骤。
    3个泛型指的是什么呢?我们来看看AsyncTask这个抽象类的定义,当我们定义一个类来继承AsyncTask这个类的时候,我们需要为其指定3个泛型参数:
    AsyncTask 

猜你喜欢

转载自blog.csdn.net/zhiwenwei/article/details/68484743