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中完整的异步处理继承树如下图所示。
个人博客:https://myml666.github.io

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
iOS实现Crash捕获与堆栈符号化
在应用程序开发过程中,最棘手的问题莫过于crash。已经上线的crash无法看到崩溃现场,只能通过crash日志进行定位分析。通常情况下,可以使用苹果自带的crash log或者第三方的crash组件进行crash捕获。但是在一些场景下,需要我们手动实现crash捕获与符号化,比如开发SDK。 Crash捕获 iOS端的crash分为两类,一类是NSException异常,另外一类是Signal信号异常。这两类异常我们都可以通过注册相关函数来捕获,但是值得注意的是一个应用中如果注册了多个crash收集组件,必然会存在冲突问题。这个时候,我们需要在注册之前判断是否已经注册过handler,如果有注册过,需要把之前注册的handler函数指针保存,待处理完crash后,再把对应的handler抛出去。 1. NSException异常捕获 N
- 下一篇
Material Design系列(一)- CollapsingToolbarLayout 和AppBarLayout
1. 什么是CoordinatorLayout CoordinatorLayout是Android官方在Design包提供的控件,来自官方的解释是: CoordinatorLayout is a super-powered FrameLayout 它主要用于两个方面: 当做普通的FrameLayout作为根布局使用 作为一个或者多个子View进行复杂交互的容器 CoordinatorLayout为我们提供了一个叫做Behavior的东西,我们基本上的复杂交互都是使用Behavior来协调完成。 先看看本文的最终成果: toolbar和header的移动完整例子 2. 如何使用CoordinatorLayout 2.1 添加依赖 这里我选择的是26.0.2版本,至于为什么选择这个,是因为我使用的最多的就是这个版本,暂时没有发现一些其他的什么问题。 dependencies{ implementation 'com.android.support:design:26.0.2' } 自从 Android Studio3.0 以后,基本上都是改用了 implementation,而不是使用 c...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6