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的序列化处理来避免出现多线程操作相同的资源而出现的问题。

更多相关文章

  1. Android(安卓)LBS系列06 位置策略(二)模拟位置数据的方法
  2. mac下Android(安卓)studio如何使用SVN进行版本控制?
  3. H5与Android和ios的交互
  4. Android(安卓)App之间通过Intent交互
  5. Android消息队列(二)--异步消息处理
  6. 文章标题:Android活动的生命周期
  7. 浅谈android的线程池
  8. Android获取应用占用空间
  9. 知乎 Android(安卓)客户端三方库敏感代码扫描机制 - FindDanger

随机推荐

  1. [Android Studio系列(五)] Android Studi
  2. 让 Android 支持下拉刷新(Pull Refresh)
  3. Android APK的数字签名的作用和意义
  4. 2014年Android碎片化报
  5. GitHub Android(安卓)Librarys Top 100
  6. Android基础入门教程——8.4.4 Android动
  7. Android之主题与样式
  8. Android当中的MVP模式(七)终篇---关于对MVP
  9. 安卓的优缺点
  10. Android(安卓)4.4(KitKat)窗口管理子系统