5

面试题:在一个Application中,Activity和Service是运行在同一个进程还是不同进程?我的回答是 ::: 在同一个过程中。

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

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

4

3 回答 3

5

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

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

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

于 2013-02-08T08:27:18.160 回答
4

根据定制,它们都可以在相同或不同的过程中工作。是的,操作系统负责执行这两个。检查此以获取详细说明:http: //developer.android.com/guide/topics/manifest/service-element.html#proc

于 2013-02-08T08:25:28.127 回答
1

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

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

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

让两者或多或少同时启动的唯一方法是让服务在单独的进程中运行。

您可以尝试启动几个线程并使用带有屏障标志的信号量。

于 2013-02-08T08:23:39.893 回答