Android上面的很多操作是不能直接放在ui线程上面的。当ui线程被阻塞5秒以上的时候应用会出现未响应的对话框过。当此现象出现的时候会直接影响用户的用户体验的。所以我们需要通过方法对异步任务或者操作进行相关的处理。在这里罗列出集中相关的处理方法:
首先我们最先想到的应该是使用Thread+Handler实现非UI线程更新UI界面,即在线程执行的时候通过发送message来通过Handler来处理和更新ui。 另外一种方法就是通过异步任务:AsyncTask来进行数据的处理,通过继承AsyncTask并重写相关的方法,比较重要的是就是doBackGround和onPostExecutor的重写。一个负责处理事务,一个负责更新界面。
基本上我们最开始想到的就是上面说的是这两个方法,其实还有两个方法,一个是通过service,另外一个就是通过IntentService来进行处理。总结一点就是:android上面处理事务的方法主要是一下四种:Handler+Thread,AsyncTask,Service,IntentService。其中每个方法都有各自的适用的地方。Service是在主线程上面进行处理的,而InentService是启动了一个单独的线程进行处理的,这一点在二者的源码中可以清楚的了解到。虽然IntentService是继承Service的,但是Service适合全局性质的服务,比如去启动一些音乐服务,或者启动获取天气的服务等等,而IntentService更加适合去执行一系列的操作,这些操作的要求就是尽量按照一定的顺序进行相关的处理,才能保证最后的结果的正确性,一般应用IntentService的地方在基本上和多线程这方面有关系,通过IntentService的序列化处理来避免出现多线程操作相同的资源而出现的问题。
- Android(安卓)LBS系列06 位置策略(二)模拟位置数据的方法
- mac下Android(安卓)studio如何使用SVN进行版本控制?
- H5与Android和ios的交互
- Android(安卓)App之间通过Intent交互
- Android消息队列(二)--异步消息处理
- 文章标题:Android活动的生命周期
- 浅谈android的线程池
- Android获取应用占用空间
- 知乎 Android(安卓)客户端三方库敏感代码扫描机制 - FindDanger
随机推荐
-
[Android Studio系列(五)] Android Studi
-
让 Android 支持下拉刷新(Pull Refresh)
-
Android APK的数字签名的作用和意义
-
2014年Android碎片化报
-
GitHub Android(安卓)Librarys Top 100
-
Android基础入门教程——8.4.4 Android动
-
Android之主题与样式
-
Android当中的MVP模式(七)终篇---关于对MVP
-
安卓的优缺点
-
Android(安卓)4.4(KitKat)窗口管理子系统