2010-10-20 19 views

回答

2

根据需求,服务可以作为单独的过程实现。 Here是一个很好的解释,何时将服务作为单独的流程实现或作为现有应用程序中的组件(在同一流程中具有活动的服务)实现。

12

它既不是活动,也不是一个过程或线程。

Android应用程序的所有组件都在进程内运行,并且默认情况下使用一个主应用程序线程。您可以根据需要创建自己的线程。

+0

如果它不是一个单独的进程,为什么要在活动与绑定服务之间进行通信,我们必须使用AIDL或Messager? – 2015-03-12 11:33:24

+2

@MarcinMierzejewski:您不必使用AIDL或“Messenger”与绑定服务进行通信。只有当该服务在另一个进程中时,您才需要使用基于IPC的机制,如AIDL。 – CommonsWare 2015-03-12 11:34:33

+0

好吧所以在大多数情况下使用IPC是一种矫枉过正? – 2015-03-12 11:40:53

0

那么,在Android操作系统中处理主机服务,所以它不是一个过程。也许看看Service的定义更多细节...

1

服务不是一个进程也不是一个线程。它是过程的一部分和主线程。像所有其他组件一样 - 服务在主线程中运行..可以说 - 您的应用程序有一个活动和一个服务,那么您的应用程序是一个具有进程ID(pid)并在DVM实例中运行的unix进程... Process产生第一个线程,它是主线程。默认情况下,所有应用程序组件都在主线程中运行 - 您可以调用单独的线程来执行并行作业。

相关问题