Android Service-startService вызывается несколько раз и вызывает путаницу значений…

У меня есть некоторые условные вызовы из моего кода, который запускает ту же службу с разными значениями данных, переданными через пакет этой службе. Когда я проверил только одно условие, сервис работает нормально для всех условий. Но когда 2 или более условий совпадают, они вызывают эту же службу, но с разными значениями данных в пакете. Проблема в том, что при выполнении этого сценария значения, отправленные первым вызовом, не заменяются для второго условия запуска той же службы. Так что отвечая незаслуженно.

Это

if(some cond)
{
    some values in serivce intent bundle.startService(serviceintent1);
}
if(some cond)
{
    some data in intent bundle.startService(serviceintent1);
}

при выполнении обоих условий вызов startService выполняется дважды. но я получаю значения из первого условия во втором условии вызова startService.

помочь мне в этом вопросе...

2 ответов


каков ваш тип возврата в onStartCommand ?

вы должны прочитать о жизненном цикле услуги. https://developer.android.com/reference/android/app/Service.html#ServiceLifecycle

Я бы предложил использовать IntentService, поскольку он предназначен для обработки задач asyncron, он также запускается в рабочем потоке. http://developer.android.com/reference/android/app/IntentService.html

чтобы действительно помочь вам, кодекс ваш сервис довольно важен:)


посмотреть привязать службу к активности в Android вопрос .. где обсуждается разница между startservice и bindservice.. Думаю, это может решить твою проблему.