В чем разница между Service
и IntentService
в Android?
В чем разница между AsyncTask
и IntentService
в Android?
В чем разница между Service
и IntentService
в Android?
В чем разница между AsyncTask
и IntentService
в Android?
<сильный>1. Разница между Сервисом и IntentService
Служба. Это базовый класс для служб Android, который можно расширить для создания любой службы. Поскольку служба запускается внутри потока пользовательского интерфейса, для выполнения ее работы требуется создать рабочий поток.
IntentService: это подкласс Service
, который упрощает вашу работу. Он работает уже в рабочем потоке и может принимать асинхронные запросы. Таким образом, вам не нужно создавать его вручную или беспокоиться о синхронизации. Вы можете просто расширить его и переопределить метод:
onHandleIntent(Intent intent)
где вы можете управлять всеми входящими запросами.
Взглянув на документацию, вы можете подробно увидеть, что IntentService
сделать для вас:
onStartCommand()
, отдельно от основного потока вашего приложения.onHandleIntent()
, поэтому вам никогда не придется беспокоиться о многопоточности.stopSelf()
.onBind()
, которая возвращает null.onStartCommand()
по умолчанию, которая отправляет намерение в рабочую очередь, а затем в вашу реализацию onHandleIntent()
.Итак, если вам нужно больше контроля, вы можете использовать класс Service
, но часто для простого сервиса лучшим решением является IntentService
.
<сильный>2. Разница между AsyncTask и сервисом
Это два разных понятия.
Сервис: можно рассматривать как действие без интерфейса. Подходит для длительных операций.
AsyncTask: – это особый класс, обертывающий рабочий поток (выполняющий фоновые операции), облегчающий взаимодействие с потоком пользовательского интерфейса без непосредственного управления потоками или обработчиками.
AsyncTask
можно многое сказать, и для этого есть документация. Я старался быть кратким, просто указав на различия с Service
- person GVillani82; 23.11.2017
Короче говоря, служба — это более широкая реализация для разработчика, позволяющая настроить фоновые операции, а служба IntentService полезна для операций «запустить и забыть», заботясь о создании и очистке фонового потока.
Из документов:
Служба Служба — это компонент приложения, представляющий либо желание приложения выполнять длительную операцию, не взаимодействуя с пользователем, либо предоставлять функциональные возможности для использования другими приложениями.
IntentService IntentService — это базовый класс для служб, которые обрабатывают асинхронные запросы (выраженные как намерения) по запросу. Клиенты отправляют запросы через вызовы startService(Intent); служба запускается по мере необходимости, обрабатывает каждое намерение по очереди, используя рабочий поток, и останавливается, когда заканчивается работа.
В чем разница между IntentService и Service ?