2012-03-26 81 views
8

我们可以在Android中安装多个服务实例吗?我想要一项可以让手机在特定时间保持沉默的服务,并且我想要在特定时间内使用该服务使手机处于振动模式。所以基本上,如果我可以使服务多次运行,那么不需要创建另一项服务来设置振动模式下的手机。另外,如果我们可以运行多个实例,请解释如何停止它。任何代码提示都会有所帮助。如何在Android中安装多个服务实例

回答

25

我们可以在Android中有多个服务实例吗?

号您可以拥有多个子类Service,但Service任何给定的子类必须在任何时候恰恰0或1个实例。

我想要一个可以让手机在特定时间保持静音的服务,并且我想要在特定时间内使用该服务使手机处于振动模式。

您不应该使用任何服务。请使用AlarmManagerBroadcastReceiver

+0

谢谢,我使用AlarmManager在某个时间间隔启动服务。你能帮我理解BroadcastReceiver以及如何使用AlarmManager来使用它吗? – 2012-03-28 14:24:55

+0

@SumitSahoo:你可以调用'getBroadcast()'来代替调用'getService()'来创建你的'PendingIntent'。而且,您的业务逻辑不在“Service”中,而是位于“BroadcastReceiver”中(通常通过“”元素在清单中注册)。 – CommonsWare 2012-03-28 14:39:35

2

我不认为服务可以用于这样的目的。服务必须提供一些功能,但只有一个含义,不是为了几个不同的目的。为了让代码简单明了,创建更多的服务会更好。

2

你的问题不太合理。这听起来像你想要做的是让同一个服务的多个实例一次运行并执行不同的事情。但是,你的问题从根本上取决于服务不应该在很长时间内做事。相反,应该发生的是,他们收到一个意图,或许会产生一个线索或其他东西,然后停止四处闲逛。请记住,服务仍然在主线程上运行,它不是后台运行的,因此您不应该在那里执行长时间运行的任务。你可能想看的是一个IntentService,它通过使用控制应该发生的意图来协调你的活动。

相关问题