Подтвердить что ты не робот

В чем разница между сервисом, намерением службы в android?

В чем разница между Service и IntentService в Android?

В чем разница между AsyncTask и IntentService в Android?

4b9b3361

Ответ 1

1. Разница между сервисом и IntentService

Сервис. Это базовый класс для служб Android, который вы можете расширить для создания любого сервиса. Поскольку служба запускается внутри потока пользовательского интерфейса, для этого требуется создать рабочий поток.

IntentService: это подкласс Service, который упрощает вашу работу. Он работает уже в рабочем потоке и может получать асинхронные запросы. Таким образом, вам не нужно создавать его вручную или беспокоиться о синхронизации. Вы можете просто расширить его и переопределить метод:

onHandleIntent(Intent intent)

где вы можете управлять всеми входящими запросами.

Взглянув на документацию, вы можете подробнее узнать, что делает IntentService для вас:

  • Создает рабочий поток по умолчанию, который выполняет все намерения, переданные в onStartCommand(), отдельно от основного потока вашего приложения.
  • Создает рабочую очередь, которая передает одно намерение за раз в вашу реализацию onHandleIntent(), поэтому вам не придется беспокоиться о многопоточности.
  • Останавливает службу после того, как все начальные запросы были обработаны, поэтому вам не нужно вызывать stopSelf().
  • Предоставляет реализацию по умолчанию onBind(), которая возвращает null.
  • Предоставляет реализацию onStartCommand() по умолчанию, которая отправляет намерение рабочей очереди, а затем в вашу реализацию onHandleIntent().

Итак, если вам нужно больше управления, вы можете использовать класс Service, но часто для простой службы лучшим решением является IntentService.

2. Разница между AsyncTask и службой

Это два разных понятия.

Сервис: может быть предназначен как действие без интерфейса. Он подходит для длительных операций.

AsyncTask: - это особый класс, который обертывает рабочий поток (выполняет фоновые операции), облегчая взаимодействие с потоком пользовательского интерфейса, без непосредственного управления потоками или обработчиками.

Ответ 2

Короче говоря, Служба - это более широкая реализация для разработчика для создания фоновых операций, в то время как IntentService полезна для операций "огонь и забвение", заботясь о создании и очистке фона.

Из документов:

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

IntentService IntentService - это базовый класс для служб, которые обрабатывают асинхронные запросы (выраженные как намерения) по требованию. Клиенты отправляют запросы через вызовы startService (Intent); служба запускается по мере необходимости, обрабатывает каждое намерение по очереди с использованием рабочего потока и останавливается при завершении работы.

Сервис против IntentService

В чем разница между IntentService и службой?