在应用程序中,活动和服务是否会在同一进程中运行?

时间:2013-02-08 08:17:21

标签: android service

面试问题:在应用程序中,活动和服务是否会在同一个流程或不同流程中运行? 我的答案是:::在同一个过程中。

下一个问题:::如果是这样,那么活动和服务是如何同时运行的? 我的答案是:::操作系统将负责执行。 (坦率地说,我不知道答案)。

有人可以解释上述问题吗?如果我的回答是错的,那么正确答案是什么?

3 个答案:

答案 0 :(得分:5)

如果服务和活动属于您的应用,则:

相同的过程,如果没有另外定义。您可以创建将在单独的进程中运行的服务。

服务和活动共享相同的线程。所以他们不能同时运行。但您可以创建新线程来处理Service中的命令。或者使用IntentService来处理自己线程中的所有命令。一些服务方法总是在UI线程上执行(例如onCreate)然后活动和服务可以并行运行(如果你有2个或更多的核心=)。

答案 1 :(得分:4)

根据自定义,它们可以在相同或不同的进程中工作。是的,OS负责执行这两个。请查看此详细说明:http://developer.android.com/guide/topics/manifest/service-element.html#proc

答案 2 :(得分:1)

无法同时启动在同一进程中运行的活动和服务(这是默认行为)。

服务的onCreate()方法在主(UI)线程上运行。

Activity的onCreate()方法也在主(UI)线程上运行。

让两者同时启动的唯一方法是让服务在一个单独的过程中运行。

您可以尝试启动少量线程并使用带有barier标志的信号量。

相关问题