44

当然这是一个微不足道的问题。如果我Service使用以下代码启动 a 会发生什么:

 startService(new Intent(this,myService.class));

然后我不小心想起了上面的代码,而Service尚未运行?

恐怕第二次调用startservice可以创建一个新Service的,以便同时执行两个不同的进程。

4

1 回答 1

77

恐怕第二次调用 startservice 可以创建一个新服务,以便同时执行两个不同的进程。

不,在多个方面:

  • 不,它不会创建新服务。如果服务已经在运行,它将onStartCommand()再次被调用以传递新的Intent,但不会创建第二个副本。

  • 不,它不会“同时执行两个不同的进程”,因为默认情况下,服务与应用程序的其余部分在同一进程中运行。

于 2012-10-29T15:43:15.153 回答