天天看点

Android中的异步处理技术

为什么需要异步处理技术

Android应用的开发要求我们正确处理主线程与子线程之间的关系,耗时操作应当放到子线程中,避免阻塞主线程,导致ANR。异步处理技术是提高应用性能解决主线程和子线程之间通讯问题的关键。

Android中的线程分类

Android应用中各种类型的线程本质上都基于Linux系统的pthreads,在应用层可以分为三种类型的线程。
  • 主线程:也成为UI线程,随着应用的启动而启动,主要用来运行Android组件和更新UI。
  • Binder线程:用于跨进程通讯的,每个进程都维护了一个线程池,用来处理其他进程中线程发送的消息,这些进程包括系统服务、Intents、ContentProviders和Service等。一个典型的应用场景是应用提供一个给其他进程通过AIDL接口绑定的Service。
  • 后台线程:应用中显示创建的线程都是后台线程,后台线程主要用来进行数据的处理网络请求等,在Android框架中,通过WindowManager赋予了主线程只能处理UI更新以及后台线程不能直接操作UI的限制。

Android中的异步处理技术

Android中的异步处理技术有很多,常见的有Thread、AsyncTask、Handler&Looper、Executors等,在实际项目中,我们需要根据具体业务进行选择,Android中完整的异步处理继承树如下图所示。
Android中的异步处理技术
个人博客: https://myml666.github.io