2011-12-30 4 views
1

서비스와 활동을 동시에 시작하고 싶습니다. 다음 코드를 사용하고 있습니다. 맞습니까?Android - 서비스 및 활동을 동시에 시작하는 방법은 무엇입니까?

startService(new Intent(this, Service.class)); 
Intent intent = new Intent(this, Activity.class); 
startActivity(intent); 

하지만 서비스가 완료되면 여기에 작업이 시작됩니다. 왜? 누구든지 도와주세요.

+0

예. startActivity 메소드가 startService() 메소드 다음에 실행되기 때문에 가능합니다. –

+0

그래서 동시에 서비스와 활동을 호출하는 방법은 무엇입니까? – Baskar

+0

startService의 반환 값은 무엇입니까? 서비스가 시작되었는지 여부를 알려줍니다. http://developer.android.com/reference/android/content/Context.html#startService%28android.content.Intent%29 –

답변

1

몇 개의 스레드를 시작하고 barier 플래그로 세마포어를 사용할 수 있습니다.

+0

그것에 대해 몇 가지 샘플 코드를 넣을 수 있습니까? – Baskar

+0

매우 기본적인 것. Java에서 스레드 스레딩에 대해 읽으십시오. –

+0

아래 코드를 시도했지만 작동하지 않습니다. 새로운 스레드() {공공 무효 실행() {시도 {startService (새로운 의도 (this, Service.class)); } catch (Exception e) {}}} .start(); 의도 의도 = 새로운 의도 (this, Activity.class); startActivity (의도); – Baskar

1

과정에서 동시에 실행되는 활동 및 서비스를 동시에 시작할 수있는 방법이 없습니다.

서비스의 onCreate() 메소드는 기본 (UI) 스레드에서 실행됩니다.

활동의 onCreate() 메소드는 기본 (UI) 스레드에서도 실행됩니다.

둘 다 동시에 시작하는 유일한 방법은 서비스를 별도의 프로세스에서 실행하는 것입니다.

관련 문제