如何创build使用不同进程的Android Activity和Service

我有一个由活动和服务组成的Android应用程序。 目前他们都存在于同一个进程中,并使用相同的堆,但我想要分开进程/堆的服务。 IE浏览器。 我希望服务完全独立于活动,以便活动崩溃不会影响服务。 但是,我确实希望将它们作为单个应用程序进行安装。 这可能吗?

Solutions Collecting From Web of "如何创build使用不同进程的Android Activity和Service"

绝对可能。 在AndroidManifest.xml查看serviceprocess属性

http://developer.android.com/guide/topics/manifest/service-element.html

去引用:

服务要运行的进程的名称。 通常,应用程序的所有组件都在为应用程序创build的默认进程中运行。 它与应用程序包具有相同的名称。 元素的进程属性可以为所有组件设置不同的默认值。 但是组件可以使用自己的进程属性覆盖缺省值,允许您将应用程序分布在多个进程中。

如果分配给该属性的名称以冒号(':')开始,则在需要时会创build一个专用于应用程序的新进程,并在该进程中运行该服务。 如果进程名称以小写字母开头,则该服务将以该名称的全局进程运行,前提是它有权这样做。 这允许不同应用程序中的组件共享一个进程,从而减less资源使用。

对于服务的IPC是恕我直言,只有当服务应该被其他应用程序使用时才需要。

在自己的进程中运行一个服务具有很小的优点,即服务的垃圾收集器不会影响您的应用程序,并且如果单独运行,则服务的内存占用量会稍微小一些。

如果其他应用程序的服务消耗不是您的要求,则更喜欢本地服务。 另外,您仍然可以在自己的过程中运行服务,并使用与您的应用程序不同的通信,例如通过广播接收器。 我尝试在我的Android服务教程下面的链接中描述不同的方法: 活动和服务通信 。