正常服务旁边的前台服务

时间:2017-05-05 08:36:31

标签: android service background

如果只是Android,我会徘徊"保证"如果服务作为前台服务运行,则使服务保持活动状态。但是,如果我在同一个进程中彼此相邻地运行两个服务,那么前台服务就像普通服务一样。第二项服务是否获得相同的保证?

main process:
  ForegroundService - Service with foreground flag
  MyService         - Normal Service

low memory event -> 
  Scenario 1:
  keep ForegroundService and keep MyService

  Scenario 2:
  keep ForegroundService and kill MyService

注意: 我在Android 7和5上做了一些调查,在这两种情况下,如果内存不足并开始杀死其他内存消费者,单个运行的前台服务将使进程内的所有服务保持活动状态。 但如果Android运行不足,它将终止整个过程,而不仅仅是删除单个进程。

2 个答案:

答案 0 :(得分:0)

如果您在清单中为每个服务定义流程,那么它将采取保证

<service
        android:name=".MyService"
        android:enabled="true" android:process="myporcee"
        android:exported="true"></service>

答案 1 :(得分:0)

文档说,它可能会杀死普通的服务,而不是那个,作为前景开始。如果要保留两个服务,则可以绑定 普通服务到前台服务,因此两个服务都具有相同的优先级。