在这个问题中:Android: AsyncTask vs Service,有人回答了
服务是一个守护进程,AsynkTask是后台线程。
对此,有人回答说:
服务不是守护进程,因为它没有自己的执行线程。
问:由于这两种程序都使用线程操作,并且在后台工作,除了每个进程的生存期之外,Asynctasks和Daemon进程之间的关键区别是什么?
发布于 2016-01-17 22:12:38
我在任何地方都没有见过带有服务或AsyncTask的守护进程。对我来说,Daemon线程是来自java的线程,它允许JVM即使使用未完成的线程也可以完成任务。就Android而言,你无法控制你的应用程序进程--你最多可能会扼杀它。
Android服务是一个组件--这使它接近活动组件。什么意思?它是由系统管理的--它具有生命周期方法被调用的生命周期。可以将服务配置为重新创建,也可以使其成为前台(这样,系统就不太可能杀死它)。因为它是一个组件,所以可以将它配置为在单独的进程下运行。默认情况下,它没有自己的执行线程--它运行在UI线程上。
现在AsyncTask是完全不同的东西,它不是一个组件,所以您不能从上面做任何事情。它有一件事是后台工作线程。实际上,AsyncTask是一个带有一些生命周期方法的Exeuctors线程池的包装器--比如onPreExecute、onPostExecute、.不应该把它比作服务,而应该把它比作装载机。
发布于 2016-01-17 21:59:02
按: http://www.linux.org/threads/android-services-and-daemons.7143/
服务:
“服务”是在背景下运行的特殊软件,就像GNU/Linux上的守护进程。服务没有GUI。“已启动服务”在后台运行,直到它完成任务、崩溃或被用户或应用程序显式关闭为止。“绑定服务”一直存在,直到没有更多的应用程序被附加或绑定到服务。
AsyncTasks是为用户界面线程不能运行的一次性耗时任务而设计的。一个常见的例子是按下按钮时获取/处理数据。
守护进程:
“守护进程”是在后台*中运行的进程,而不拥有。服务通常是守护进程,而守护进程通常被认为是服务。然而,服务和守护进程之间的确切区别是模糊的。一般来说,它们可以被视为同一个实体。但是,有些人使用“守护进程”来指一段软件,使用“服务”来指守护进程.提供的操作和API。
https://stackoverflow.com/questions/34844046
复制相似问题