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.. Думаю, это может решить твою проблему.