当然这是一个微不足道的问题。如果我开始一个Service
,使用下面的代码会发生什么:启动Android服务已在运行?
startService(new Intent(this,myService.class));
,然后我无意中想起上面的代码,而Service
是没有运行?
恐怕第二次调用startservice
可以创建一个新的Service
以便让两个不同的进程同时执行。
当然这是一个微不足道的问题。如果我开始一个Service
,使用下面的代码会发生什么:启动Android服务已在运行?
startService(new Intent(this,myService.class));
,然后我无意中想起上面的代码,而Service
是没有运行?
恐怕第二次调用startservice
可以创建一个新的Service
以便让两个不同的进程同时执行。
恐怕第二次调用startservice可以创建一个新服务,以便同时执行两个不同的进程。
不,多计数:
不,它不会产生一个新的服务。如果服务已在运行,则将再次调用onStartCommand()
,以提供新的Intent
,但不会创建第二个副本。
不,它不会“有两个不同的进程在同一时间执行”,因为默认情况下,服务以与其他应用程序相同的进程运行。
我正在使用意向服务从网址下载视频。我通过从网站提取的方式将视频显示在列表中。当用户点击一个列表元素时,下载在intent服务中开始。如果用户点击另一个元素,则在第一个元素完成后自动开始下一个下载。这真让我困惑。 –
@AnkitGarg:这正是'IntentService'应该如何表现的。 – CommonsWare
那么这是否意味着onStartCommand保存(堆栈)新的服务调用并在第一个服务完成时执行它?无论如何,感谢 –
只能有一个服务实例,所以你不必担心多个调用。 – jsmith
好的,谢谢。我不确定这一点。 – GVillani82