Выполнение фоновой работы — критически важный этап создания современных приложений Android, которые отзывчивы, эффективны и удобны для пользователя. Фоновая работа включает в себя любые задачи, которые приложение должно выполнять, когда оно не отображается на переднем плане, например, получение данных с сервера или обработка изображений.

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

Начните работу с фоновой работой

Ознакомьтесь с руководством по выбору подходящего API для фоновой работы в вашем конкретном случае и рассмотрите его в контексте процессов и жизненного цикла приложения Android.
Гид
Выбор подходящего API для фоновой работы может быть сложным. Эта страница даёт чёткие рекомендации о том, когда использовать асинхронную работу, WorkManager, службы переднего плана или альтернативные варианты. Узнайте, какой API лучше всего подходит для вашего конкретного случая.
Гид
Изучите фундаментальные концепции жизненного цикла процесса Android и то, как они влияют на поведение вашего приложения и управление ресурсами. Узнайте, как система управляет процессами приложения на основе состояния активности, что позволяет вам разрабатывать отказоустойчивые и эффективные приложения, корректно реагирующие на системные завершения.

Ключевые идеи

К наиболее распространённым API и инструментам для выполнения фоновой работы относятся WorkManager, службы переднего плана, оповещения и широковещательные рассылки. Каждое решение по-разному влияет на время работы аккумулятора устройств ваших пользователей.
WorkManager — рекомендуемое решение для постоянной фоновой работы на Android. Узнайте, как использовать эту мощную библиотеку для планирования задач, сохраняющихся при перезапуске приложения и устройства, а также ознакомьтесь с её ключевыми функциями для обработки ограничений и гибких политик повторных попыток.
Службы переднего плана предлагают эффективный способ мгновенного запуска задач без прерывания работы. Узнайте, когда и как объявлять, запускать и останавливать службу переднего плана с помощью постоянного уведомления, гарантируя, что ваше приложение будет выполнять критически важные задачи без прерывания работы системы.
Будильники — важнейший инструмент для планирования работы с учётом времени. На этой странице объясняется, как использовать AlarmManager для планирования как точных, так и неточных будильников для задач, которые должны быть запущены в определённое время или в течение заданного окна, даже когда приложение не запущено. Здесь также рассматриваются рекомендации по управлению будильниками и их оптимизации для экономии заряда батареи.
Узнайте, как отправлять и получать широковещательные сообщения для обработки системных событий и сообщений от других приложений. Вы также узнаете о зарегистрированных в контексте и объявленных в манифесте приёмниках, а также об ограничениях современной системы, которые к ним применяются.

Справочное руководство по вариантам использования

Правильное решение зависит от вашего варианта использования. Android предоставляет множество специализированных API, оптимизированных для конкретных сценариев, и зачастую обеспечивает большую экономию энергии и меньше ограничений, чем при использовании WorkManager и Foreground Services.

В этом разделе перечислены некоторые наиболее распространенные варианты использования и рекомендуемые решения.

В большинстве случаев данные о местоположении требуются только во время взаимодействия пользователя с приложением. Однако, если вашему приложению требуется доступ к данным о местоположении в фоновом режиме, используйте API поставщика объединённых данных о местоположении. Используйте этот API для получения кэшированного последнего известного местоположения или запроса периодических обновлений данных о местоположении.
Эффективно обновляйте GlanceAppWidgets, когда приложение работает в фоновом режиме, используя метод update.
Используйте Bluetooth Low Energy (BLE) для связи с периферийными устройствами в фоновом режиме. Узнайте, как сканировать устройства, подключаться к ним и поддерживать постоянное соединение, соблюдая системные ограничения и экономя заряд аккумулятора.
Для отслеживания шагов на мобильных устройствах рассмотрите возможность считывания шагов из Health Connect — хранилища данных Android для здоровья и фитнеса.
Для фоновых задач, запускаемых пользователем и включающих передачу данных (включая загрузку и выгрузку), предназначенных для информирования пользователя о ходе выполнения, используйте тип задания «Задание по передаче данных, инициированное пользователем». Этот тип задания оптимизирован для длительной передачи данных и имеет приоритет, предоставляемый системой.
Используйте библиотеку Media3 для поддержки фонового воспроизведения, когда ваше приложение не видно пользователю.

Понимание оптимизации энергопотребления

Учёт влияния фоновой работы на энергопотребление критически важен для создания качественных приложений для Android. Это позволяет создавать более надёжные и экономичные приложения, понимая, как система управляет ресурсами. Оптимизация энергопотребления сокращает расход заряда батареи, предотвращает закрытие приложения системой и обеспечивает более плавный пользовательский интерфейс.
Гид

Система назначает приоритеты запросам приложений на ресурсы на основе состояния устройства, состояния приложения и режима ожидания приложения.

Узнайте больше о том, как ваше приложение может работать в рамках ограничений ресурсов управления питанием устройства, чтобы надежно выполнять работу в фоновом режиме.

Гид
Вашему приложению может потребоваться предотвратить переход ЦП устройства в состояние ожидания для выполнения критически важных задач. Это руководство поможет вам выбрать наиболее подходящие методы поддержания устройства в состоянии бодрствования.
Гид
Узнайте, как адаптировать приложение к режимам Doze и App Standby, чтобы повысить эффективность работы аккумулятора и улучшить пользовательский опыт. Понимая эти режимы энергосбережения, вы сможете обеспечить оптимальную работу приложения, минимизируя его влияние на время работы аккумулятора устройства.
Гид
Начиная с Android 9, на устройствах реализованы функции управления питанием, которые влияют на все приложения. Узнайте, как протестировать приложение, чтобы убедиться в его корректной работе на всех устройствах, включая такие функции, как экономия заряда батареи, App Standby Buckets и ограничения фонового режима.

Последние новости