2

我有一个爱好应用程序(闹钟),其中有很多短期服务。所有这些服务都是BroadcastReceiver在内部意图被广播时启动的。其中许多服务对相同的意图做出反应,例如,当警报触发时VibrationServiceKlaxonServiceFlashLightService全部启动。还有一些其他的服务和接收器也做少量的工作。过去,一切都很好。最近,服务的数量增加了,当广播“流行”意图时,我开始注意到相当大的滞后。

我的所有服务都没有导出并在主线程上运行。

现在我的问题是,服务的创建/销毁有多昂贵?使用一个“HostService”并在那里完成所有工作是否有意义(在我的情况下它将取代 4-5 个服务)?

4

1 回答 1

2

创建短期服务的最简洁的方法是使用 IntentService 而不是完全成熟的服务。它们在自己的线程上运行,并在处理完所有排队的意图后终止。

从您的服务名称来看,您还应该查看通知管理器。这可以提高您的大部分工作量,而无需单独的服务。

于 2013-01-27T17:13:00.553 回答