2011-12-30 1 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

Вы можете попробовать запустить несколько потоков и использовать семафор с флагом барьера.

+0

Можете ли вы добавить пример кода. – Baskar

+0

очень основной предмет. read about Threading in java –

+0

Я пробовал под кодом и не работает. new Thread() {public void run() {try {startService (новый Intent (this, Service.class)); } catch (Исключение e) {}}} .start(); Intent intent = new Intent (это, Activity.class); startActivity (намерение); – Baskar

1

Невозможно запустить Activity и службу, которые работают в том же процессе (который является поведением по умолчанию) одновременно.

Метод onCreate() службы работает по основному потоку (UI).

Метод onCreate() Activity также работает в основном потоке (UI).

Единственный способ начать с более-менее-то же время - запустить службу в отдельном процессе.