Android异步任务的处理方法

来源:互联网 发布:上瘾网络剧在哪看全集 编辑:程序博客网 时间:2024/05/08 06:33

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

0 0
原创粉丝点击