Где я должен использовать Service, AsyncTask и Broadcast Receiver?

Я немного путаюсь, где в каком случае мне нужно использовать такие компоненты приложения, как Service, asyncTask и Broadcast Receiver.

Может ли кто-нибудь объяснить, какая именно разница между ними там и где мне нужно использовать эти компоненты?

AsyncTask – это дружественный способ создания нового потока, который выполняет некоторую работу асинхронно.

Широковещательный приемник – это что-то вроде обработчика событий для системных событий. Он может работать в фоновом режиме и выполнять действие, когда что-то происходит, например, выключить телефон или включить Wi-Fi.

Служба – это просто приложение, которое работает в фоновом режиме (например, демон) и обслуживает информацию в приложении или просто выполняет задачи.

Извините за мой английский, я пытаюсь дать понять, но это не мой родной язык

Я доберусь до того места, где я применил эти три в моих проектах:

1.Service: то, что вы хотите выполнять в фоновом режиме без какого-либо взаимодействия с пользователем. Например, выборка данных о местоположении непрерывно или постоянная передача данных на ваш сервер. Вы также можете использовать службы для выполнения задач каждые несколько единиц времени. Например, отправьте десять минут Обновления фона.

2.AsyncTask: создание нового потока выполнения. Самое лучшее использование, с которым я столкнулся до сих пор, вызывает веб-службу. Я сделал следующее, используя AsyncTask для вызовов веб-службы. 1.Display Progress bar в onPreExecute () 2.Perform my web Сервисные вызовы в doInBackground (Params …) 3.In onPostExecute (Result) обновляет пользовательский интерфейс или выполняет некоторые другие действия с ответом веб-службы.

3.BroadCastRecievers – это как глобальные приемники для вашего приложения. Они могут прослушивать как системные события, такие как перезагрузку телефона, так и пользовательское событие в вашем приложении. Я использовал их для запуска службы при перезапуске телефона, который остановился, когда мы отключили Телефон.

Служба и ее локальные переменные памяти загружаются в память и всегда работают

Приемник BroadCast гарантируется только в памяти и работает при обработке события.

Broadcastreceiver может быть удален из памяти операционной системой, если память низкая.

«Сервис» – это компонент, который работает в фоновом режиме, не взаимодействуя с пользователем. Каждый разработчик может создавать новые службы в своем приложении. Сервисы поддерживают истинную многозадачность для Android, поскольку они могут работать в собственном процессе.

«AsyncTask» инкапсулирует создание потоков и обработчиков. AsyncTask запускается с помощью метода execute (). Метод execute () вызывает метод doInBackground () и onPostExecute (). Главной целью является загрузка чего-либо без взаимодействия с пользователем.

«Broadcast Receiver» – это класс, который расширяет BroadcastReceiver и который зарегистрирован как получатель в приложении Android через файл AndroidManifest.xml (или через код). Вы можете динамически регистрировать BroadcastReceiver с помощью метода Context.registerReceiver (). Класс BroadcastReceiver определяет метод onReceive (). Только во время этого метода ваш объект BroadcastReceiver будет действителен, после чего система Android сможет перерабатывать BroadcastReceiver.

Позвольте мне объяснить с помощью usecase, так что вы понимаете это лучше –

  1. AsyncTask – хотите что-то получить с сервера или отправить что-то на сервер? Если мы сделаем это в основном потоке, пользователь не сможет взаимодействовать с приложением. Так Asynctask используется, и он выполняет сетевую активность в другом потоке.

  2. Сервис. Хотите что-то сделать в фоновом режиме? Как получить местоположение пользователей каждые 10 минут или 1 час или предупредить пользователя, когда он пересекает конкретную область на основе местоположения. Служба запускает приложение даже тогда, когда приложение не открывается (пользователь может делать что-то еще или телефон заблокирован, Служба по-прежнему работает в фоновом режиме).

  3. Широковещательный приемник. Предположим, вы отслеживаете местоположение и сохраняете локально (когда Интернет отключен). Не когда Интернет встает, вы хотите отправить все из них. Таким образом, вы регистрируетесь в ОС, которую хотите прослушать для этого конкретного события, и получаете контроль. Если вы хотите, чтобы сервер знал, что устройство перезагружено, нам просто нужно его реализовать.

Очистить?

Intereting Posts
Shell / пакетный скриптинг для непосредственных команд для adb shell Пользовательский адаптер для Android-андроид Как заказывать вызовы API, когда вы находитесь в автономном режиме при использовании Retrofit Фоновые изображения не работают в Android, BB, Windows Phone В чем разница между методами invalidate () и postInvalidate () Android? Как остановить все звуки в SoundPool? Отображать значок эмоции в Android TextView по символам Unicode или другим способом Динамическое добавление содержимого в линейный макет? Android: сохранение звука в качестве мелодии звонка и уведомления Платформа Android Soft плавает только с определенным макетом Не нашел класс «android.support.v7.internal.widget.TintManager» по пути: DexPathList Android webView: возможно установить клавиатуру чисел по умолчанию при использовании типа ввода = текст ACTION_SENDTO не работает Добавить проект в библиотеку в Android Studio Почему приложение для Android отключается, когда я добавляю «android: id»?