我的应用有6个服务(其中3个是IntentService)和4个接收器(其中1个是本地接收器)。
我想知道:
- 注册服务和接收器是否有任何限制(例如最大数量)?
- 在我的特定情况下,拥有这么多服务/接收器是否健康?它会在Android运行时被终止吗?
我的应用有6个服务(其中3个是IntentService)和4个接收器(其中1个是本地接收器)。
我想知道:
IntentService
用于处理所有事务性工作,可能还需要一个额外的Service
用于用户控制下的持久操作(例如媒体播放)。请记住,如果您使用命令模式,可以使用Intent
extras通过startService()
和onStartCommand()
来向服务传递不同的操作信号。因此,例如,当您可以在onStartCommand()
中使用if
语句来区分三个(或更多)不同的命令时,使用三个IntentServices
没有太大价值。 - CommonsWareAccessibilityService
),但这很少见,并且它们需要其中之一和一个IntentService
和一个常规Service
的几率相当小。 - CommonsWarestartService()
调用都涉及IPC等。例如,您可以自己编写一个类似于IntentService
的工作方式,使用ThreadPoolExecutor
,以允许您同时处理多个命令,但仍然可以调整线程数。或者,跳过命令协议,使用进程内事件总线将工作传递到Service
以在线程池上进行处理。 - CommonsWare