2012-10-29 2 views
26

물론 이것은 사소한 질문입니다.Android 서비스를 이미 시작하고 있습니까?

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

후 실수로 위의 코드를 불러옵니다 Service이 아직 실행되는 동안, : 나는 다음과 같은 코드를 사용하여 Service을 시작하면 어떻게됩니까?

startservice에 대한 두 번째 호출은 동시에 두 개의 서로 다른 프로세스가 실행되도록하기 위해 새로운 Service을 생성 할 수 있습니다.

+2

서비스의 인스턴스는 1 개일 수 있으므로 여러 번 호출 할 필요가 없습니다. – jsmith

+0

네, 감사합니다. 나는 이것에 관해 확실하지 않았다. – GVillani82

답변

53

startservice에 대한 두 번째 호출은 동시에 두 개의 서로 다른 프로세스가 실행되도록 새 서비스를 만들 수 있습니다. 여러 카운트

없음

:

  • 아니, 새로운 서비스를 만들 수 없습니다. 서비스가 이미 실행중인 경우 새 Intent을 전달하기 위해 onStartCommand()과 함께 다시 호출되지만 두 번째 복사본은 만들어지지 않습니다.

  • 아니요, 서비스는 기본적으로 나머지 응용 프로그램과 동일한 프로세스에서 실행되기 때문에 "동시에 두 개의 서로 다른 프로세스가 실행되지 않습니다".

+1

URL에서 비디오를 다운로드하기 위해 인 텐트 서비스를 사용하고 있습니다. 웹 사이트에서 가져 와서 목록에 비디오를 표시하고 있습니다. 사용자가 목록 요소를 클릭하면 인 텐트 서비스에서 다운로드가 시작됩니다. 사용자가 다른 요소를 클릭하면 첫 번째 요소가 완료된 후 다음 다운로드가 자동으로 시작됩니다. 이것은 나를 혼란스럽게합니다. –

+1

@AnkitGarg : 그것은 정확히'IntentService'가 어떻게 행동 할 것인가입니다. – CommonsWare

+1

그러면 onStartCommand는 새로운 서비스 호출을 보유 (스택)하고 첫 번째 서비스가 완료 될 때이를 실행합니다. 그래도 고맙습니다. –

관련 문제