Помогите Диме помочь помогать помочь помогать

Автовыкуп дтп

09.08.2016


Асинхронные задачи могут выполняться в службах последовательно или параллельно, при этом возможно применение любой методики, описанной в данной книге. Но для двух случаев использования следует рассмотреть несколько альтернативных вариантов:


последовательное выполнение в службе, управляемой задачами - служба, управляемая задачами, может выполнять задачи параллельно или последовательно в зависимости от используемой методики асинхронного выполнения. Если задачи выполняются последовательно, например с помощью HandlerThread, Executors.newSingleThreadExecutor или любой среды выполнения Executor, определяемой разработчиком, лучше всего воспользоваться IntentService, так как службы этого типа имеют встроенную поддержку последовательного выполнения задач и завершают работу, когда нс остается задач для выполнения; Возможно вас заинтересует автовыкуп дтп.


AsyncTask с глобальной средой выполнения в локальном процессе - компонент Service работает независимо от прочих компонентов в одном процессе, а зачастую и одновременно с ними. Из этого следует, что служба почти наверняка выполняет фоновые задачи в то же время, когда другие компоненты в том же процессе выполняют свои фоновые задачи. Существует опасность, что в AsyncTask будут возникать задержки, поскольку среда выполнения является глобальной для процесса, как описано в главе 10, и одна и та же среда выполнения используется для всех задач. Следовательно, объект AsyncTask, используемый в одном процессе с другими компонентами, должен определять собственную неглобальную среду выполнения или использовать другой механизм, например пул потоков.