Thread、AsycTask、IntentService的比较

转载 2015年11月19日 08:54:06

IntentService 是Serivce+handler的结合产物  AsyncTask是thread池+handler的结合产物 
为什么用service而不用thread:android 的系统机制有关,我们先拿 Thread 来说 Thread 的运行是独立于 Activity 的,也就是说当一个 Activity 被 finish 之后 ,如果你没有主动停止 Thread 或者 Thread 里的 run 方法没有执行完毕的话,Thread 也会一直执行。因此这里会出现一个问题:当 Activity 被 finish 之后,你不再持有该 Thread 的引用。另一方面,你没有办法在不同的 Activity 中对同一 Thread 进行控制。
location serivce  不是一个单独的进程,它和应用程序在同一个进程中。只能在当前应用中调用service。kill当前应用则service也随之消亡。
remote service   独立与应用程序之外进程的进程(必须在声明的时候以android:process=":remote"方式声明),配合AIDL可以实现进程间的相互调用。remote service所依附的那个应用如果应用kill掉,但是remoteservice还在运行,除非你卸载当前应用。 

选中你的进程com.example.android.intent_service然后点 stop,则应用被kill掉,而com.example.android.intent_service:remote却安然无恙。

IntentService 是Serivce+handler的结合产物,可以在onHandleIntent直接处理耗时操作。而本地service和远程service不能在onStart方法中执行耗时操作,只能放在子线程中进行处理,当有新的intent请求过来都会线onStartCommond将其入队列,当第一个耗时操作结束后,就会处理下一个耗时操作(此时调用onHandleIntent),都执行完了自动执行onDestory销毁IntengService服务。
AsyncTask是thread池+handler的结合产物,减少程序中线程过多开销过大,操作和管理更加方便。AsyncTask实例必须在UI Thread中创建,execute方法必须在UI Thread中调用不能手动调用onPreExcute(),onPostExcute(Result)。task只能被执行一次,否则将出现异常。

数据简单使用AsyncTask:实现代码简单, 数据量多且复杂使用handler+thread :相比较AsyncTask来说能更好的利用系统资源且高效




相关文章推荐

Android常见面试题解答

1. Activity与Fragment的生命周期。 onCreate过程   01-22 15:30:28.091: E/HJJ(10315): Activity &&&&...

Android IntentService完全解析 当Service遇到Handler

Android 基于Message的进程间通信 Messenger完全解析 转载请标明出处: http://blog.csdn.net/lmj623565791/article/deta...

Thread、AsycTask、IntentService的使用场景与特点

Thread当一个 Activity 被 finish 之后 ,如果你没有主动停止 Thread 或者 Thread 里的 run 方法没有执行完毕的话,Thread 也会一直执行。IntentSer...

Android开发——Android中常见的4种线程池(保证你能看懂并理解)

0.前言使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用,减少创建和销毁线程的性能开销。其次,能控制线程池中的并发数,否则会因为大量的线程争夺CPU资源造成阻塞。最后,线程池能够对线程进行...

2017春招——今日头条——android岗

一面(45min): 约了27号下午三点,还好只等了半个小时面试官就上线了,有的等了两个小时,面试官是一个微胖的中年人,说话特温柔,,,,, 1.ArrayList、LinkedList、Hash...

Thread、AsycTask、IntentService的比较

IntentService 是Serivce+handler的结合产物  AsyncTask是thread池+handler的结合产物  为什么用service而不用thread:android 的...

Service, Thread, IntentService and AsyncTask 比较

From http://madhusudhanrc.blogspot.com/2012/05/difference-between-android.html Service Th...

Android中HandlerThread和IntentService详解

在Android中有两种线程UI线程和子线程,我们都很清楚如果在UI线程进行耗时处理的话就容易引起ANR、如果是一个网络请求放在UI线程处理的话也会引起NetworkOnMainThreadExece...

Android之Service与IntentService的比较

Android之Service与IntentService的比较          不知道大家有没有和我一样,以前做项目或者练习的时候一直都是用Service来处理后台耗时操作,却很少注意...

Android开发之Service与IntentService的比较

稍微翻译理一理,这里主要是说IntentServic 不知道大家有没有和我一样,以前做项目或者练习的时候一直都是用Service来处理后台耗时操作,却很少注意到还有个IntentService,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)