Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android上创建服务有多贵?_Android_Service - Fatal编程技术网

在Android上创建服务有多贵?

在Android上创建服务有多贵?,android,service,Android,Service,我有一个业余应用程序(闹钟),其中有很多短期服务。当内部意图被广播时,所有这些服务都由BroadcastReceiver启动。这些服务中的许多都有相同的意图,例如,当警报响起时,振动服务,KlaxonService和闪光灯服务都会启动。还有一些其他服务和接收器也做少量的工作。过去,一切都很好。最近,服务的数量增加了,我开始注意到,当一个“流行”的意图被广播时,会有相当大的延迟 我的所有服务都不会导出并在主线程上运行 现在我的问题是,创建/销毁服务的成本有多高?使用一个“主机服务”并在那里完成所有

我有一个业余应用程序(闹钟),其中有很多短期服务。当内部意图被广播时,所有这些服务都由
BroadcastReceiver
启动。这些服务中的许多都有相同的意图,例如,当警报响起时,
振动服务
KlaxonService
闪光灯服务
都会启动。还有一些其他服务和接收器也做少量的工作。过去,一切都很好。最近,服务的数量增加了,我开始注意到,当一个“流行”的意图被广播时,会有相当大的延迟

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


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

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


根据服务的名称判断,您还应该查看notification manager。这可以节省您的大部分工作量,而无需单独提供服务。

谢谢您的回答。IntentService创建自己的活套,在我的例子中,这是不需要的。我只有两个线程(主线程和数据库访问),我不想处理多线程。