В чем разница между Service
и IntentService
?В чем разница между сервисом, намерением службы в android?
В чем разница между AsyncTask
и IntentService
?
В чем разница между Service
и IntentService
?В чем разница между сервисом, намерением службы в android?
В чем разница между AsyncTask
и IntentService
?
1. Разница между службой и IntentService
службы: Это базовый класс для Android услуг, которые можно расширить для создания каких-либо услуг. Поскольку служба запускается внутри потока пользовательского интерфейса, для этого требуется создать рабочий поток для выполнения его работы.
IntentService: это подкласс Service
, что упрощает вашу работу. Он работает уже в рабочем потоке и может получать асинхронные запросы. Таким образом, вам не нужно создавать его вручную или беспокоиться о синхронизации. Вы можете просто расширить его и переопределить метод:
onHandleIntent(Intent intent)
, где вы можете управлять всеми входящими запросами.
Взглянув на documentation, вы можете увидеть в деталях, что IntentService
сделать для вас:
onStartCommand()
отдельно от основного потока приложения.onHandleIntent()
, поэтому вам не придется беспокоиться о многопоточности.stopSelf()
.onBind()
, которая возвращает null.onStartCommand()
, которая отправляет намерение рабочей очереди, а затем в вашу реализацию onHandleIntent()
.Так что, если вам нужно больше контроля вы можете использовать Service
класс, но часто для простого обслуживания наилучшим решением является IntentService
.
2. Разница между AsyncTask и услуг
Это два разных понятия.
Услуга: может быть предназначена для работы без интерфейса. Он подходит для длительных операций.
AsyncTask: - это особый класс, который обертывает рабочий поток (выполняет фоновые операции), облегчая взаимодействие с потоком пользовательского интерфейса, без непосредственного управления потоками или обработчиками.
Короче говоря, услуга - это более широкая реализация для разработчика, позволяющая создавать фоновые операции, а IntentService полезна для операций «огонь и забыть», заботясь о создании и очистке фона.
Из документов:
Сервис А Сервис является компонент приложения, представляющий желание либо приложения для выполнения более длительного хода операции при этом не взаимодействуя с пользователем, либо предоставить функциональные возможности для других приложений для использования.
IntentService IntentService - это базовый класс для служб, которые обрабатывают асинхронные запросы (выраженные как намерения) по требованию. Клиенты отправляют запросы через вызовы startService (Intent); служба запускается по мере необходимости, обрабатывает каждое намерение по очереди с использованием рабочего потока и останавливается, когда заканчивается работа.
What is the difference between an IntentService and a Service?
Есть хорошее объяснение здесь http://stackoverflow.com/a/15772151/1533670 – NPE
Это объяснение хорошо, но если вы могли бы пойти в более подробно на AsyncTask (особенно минусы) было бы лучше. –
Существует много чего сказать о 'AsyncTask', и для этого есть документация. Я старался держать его в курсе, просто указывая на различия с «Сервисом» – GVillani82