очень часто вызываю IntentService.startService()

#android #commonsware-cwac

#Android #commonsware-cwac

Вопрос:

Я хотел бы спросить, есть ли что-то вроде переполнения намерения, когда

 WakefulIntentService.sendWakefulWork()
  

или вообще

 IntentService.startService()
  

вызывается очень часто, не дожидаясь завершения предыдущих заданий. Я думаю о ситуации, когда из-за ввода пользователем может случиться так, что задание занимает 1 минуту, но оно вызывается каждые 10 секунд. Должен ли я реализовать какой-либо механизм для защиты от запуска слишком большого количества заданий? Спасибо за все ответы

Ответ №1:

Должен ли я реализовать какой-либо механизм для защиты от запуска слишком большого количества заданий?

Если вы ожидаете частых перегибов, когда добавленные вами задания превышают обработанные, вам следует подумать о том, чтобы сделать что-нибудь, чтобы помочь справиться с этим. Хотя я раньше не знал о жестком исключении OutOfMemoryError — которое, если у вас нет довольно больших Intent дополнений, здесь маловероятно — ваш IntentService будет просто продолжать работать, работать и работать. Попутно это будет расходовать процессор, оперативную память, возможно, пропускную способность (в зависимости от того, в чем заключается работа) и, следовательно, время автономной работы.