【问题标题】:Android : assign new process id to ServiceAndroid:为服务分配新的进程ID
【发布时间】:2015-06-27 06:57:26
【问题描述】:

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

【问题讨论】:

    标签: android service


    【解决方案1】:

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

    根据安卓docs

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

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

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

    附带说明:在自己的进程中运行服务有一个小优点,即服务的垃圾收集器不会影响您的应用程序,并且如果单独运行,服务的内存占用会更小。

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

    【讨论】:

      猜你喜欢
      • 2015-11-18
      • 2012-10-10
      • 2019-10-29
      • 2015-07-27
      • 1970-01-01
      • 2011-12-26
      • 2023-03-09
      • 2011-06-30
      相关资源
      最近更新 更多