В моем приложении используется Service
, чтобы сделать некоторые фоновые вещи. Я использую дополнительные потоки в службе для выполнения некоторых вычислений. Для этого я создаю два потока каждые 5-10 секунд, которые работают от 5 до 10 секунд. Но я не знаю, какую нить-моделью я должен использовать:
-
AsyncTask:
Плюсы:
- простой в использовании
- специфический для Android
- простое пользовательское взаимодействие
Минусы:
- Так как я должен использовать уровень API 10, не существует
ExecutorService
с фиксированным пулом потоков для выполнения AsyncTasks
-
Нормальные потоки Java:
Плюсы:
- ExecutorService с фиксированным пулом потоков
Минусы:
- Не так легко обрабатывать, например. Пользовательский интерфейс взаимодействия
Какую модель лучше использовать? Особенно это касается производительности. Есть ли тяжелые накладные расходы, когда я использую AsyncTasks и быстрее ли используется ExecutorService при повторном использовании потоков, чем Android, при создании новых AsyncTasks?