Для фонового выполнения задач в среде Android доступны 4 класса: HandlerThread, Thread, IntentService, AsyncTask. Использование какого класса эффективно для выполнения фоновых задач, если задачи возникают непостоянно?
Задачей в основном является получения информации из интернета. Из-за непостоянства задач непонятно какой класс использовать для достижения наилучшей эффективности.
HandlerThread хорош для выполнения частых запросов, но при редких - простой потока. Thread хорош при редких запросов, но при частых - падение производительности (создание объекта + резервирование необходимых ресурсов). AsyncTask аналогичен Thread. IntentService хорош для всех задач, но проблемы в производительности могут быть из-за частого запуска сервиса системой android.
Кто что может посоветовать?
Ответ
Вас скорее должен волновать вопрос нужно ли вам, чтобы работа завершилась до конца или особо не важно. Т.к. если вам крайне необходимо чтобы поток завершил свою работу, то однозначно - IntentService, если всё равно, то можете юзать AsyncTask, поверьте, лишнего процессорного времени он не жрёт
Комментариев нет:
Отправить комментарий