Android:为服务分配新的进程ID

时间:2015-06-27 06:57:27

标签: android service

当我们启动服务(更长时间运行的操作)时,我们可以为服务分配新的进程ID吗? ...或者......强制相同的默认进程ID(Linux内核在启动时分配给应用程序)由OS分配?

1 个答案:

答案 0 :(得分:0)

对于需要与您的应用程序不同的进程ID的服务,您可以使用android:process属性。

根据Android docs

  

如果分配给此属性的名称以冒号(':')开头,则a   在需要时创建应用程序专用的新进程   并且该服务在该过程中运行。

这样,在创建服务时,Android系统应该在具有不同PID的不同进程中运行它。

要交叉检查/验证您的服务确实使用不同的pid运行,您可以使用ps中的adb shell命令或使用DDMS查看您的服务是否以不同的进程ID运行。

作为旁注:在自己的进程中运行服务具有以下优点:服务的垃圾收集器不会影响您的应用程序,并且如果单独运行,则服务的内存占用量会小一些。

参考:Android - How to decide whether to run a Service in a separate Process?