面试题:在一个Application中,Activity和Service是运行在同一个进程还是不同进程?我的回答是 ::: 在同一个过程中。
下一个问题 ::: 如果是这样,那么 Activity 和 Service 是如何同时运行的?我的回答是 ::: 操作系统将负责执行。(坦率地说,我不知道答案)。
有人可以解释上述问题吗?如果我的答案是错误的,那么正确的答案是什么?
如果服务和活动属于您的应用,则:
如果没有另外定义,则相同的过程。您可以创建将在单独进程中运行的服务。
Service 和 Activity 共享同一个线程。所以它们不能同时运行。但是您可以创建新线程来处理 Service 中的命令。或者使用 IntentService 在自己的线程中处理所有命令。一些服务方法总是在 UI 线程上执行(例如 onCreate) 然后活动和服务可以并行运行(如果你有 2 个或更多内核 =)。
根据定制,它们都可以在相同或不同的过程中工作。是的,操作系统负责执行这两个。检查此以获取详细说明:http: //developer.android.com/guide/topics/manifest/service-element.html#proc
无法同时启动在同一进程中运行的 Activity 和 Service(这是默认行为)。
Service 的 onCreate() 方法在主 (UI) 线程上运行。
Activity 的 onCreate() 方法也在主(UI)线程上运行。
让两者或多或少同时启动的唯一方法是让服务在单独的进程中运行。
您可以尝试启动几个线程并使用带有屏障标志的信号量。