Intereting Posts
Размер Android ArrayList возвращает 1, даже если в списке нет элемента Как настроить пользовательский заголовок в запросе Volley Как создать градиент, как Iphone Edittext box в android Каков цвет по умолчанию для текста в текстовом виде? Сохранить файл в общедоступном каталоге с помощью Cordova FileTransfer Динамическая настройка содержимого и макета виджета до размера, определяемого пользователем путем изменения размера. Android Не работает Chrome на Android Android DrawerLayout.setDrawerLockMode () не работает Дублированная ссылка на макет в виде списка Maven: использование библиотек Java 8 в приложениях, оснащенных модулем retrolambda-maven-plugin и DEX-ed с помощью Android-maven-plugin Ошибка при анализе содержимого Android sdk и инициализации java-инструментов в eclipse Android – как поймать действие Drop ItemTouchHelper, которое используется с RecyclerView Как запустить пользовательское правило в Android.mk перед компиляцией? Коды ошибок аутентификации Firebase 9.0.2 Обработка результата из приложения для совместного использования

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

Очистить?