Фоновое исполнение в Android

04.05.2020
Posted in blog-article
04.05.2020 admin

Фоновое исполнение в Android

Всё что вам нужно знать об использовании фонового режима

Используйте фоновый режим для создания классных приложений, которые радуют пользователей, экономя их батарею!

Когда приложение в фоновом режиме?

Приложение считается фоновым, если любое из следующих действий — ложно

1. Приложение имеет видимое действие, независимо от того, запущено это действие или приостановлено.

2. Приложение работает на переднем плане и потребляет энергию.

3. Приложение связывается через сеть или внутренние пути с другим приложением-партнером. В качестве таких партнеров может выступать:

А. Редактор IME;

Б. Обои службы;

С. Системы уведомления;

Д. Голосовые или текстовые службы;

Е. Музыкальное приложение для потоковой передачи музыки для вашего автомобиля (эта особенность для Андроида является автоматически-специфической).

Если какое-либо из этих условий истинно, приложение считается работающим на переднем плане.

4. Приложение вносит изменения в работу гаджета, пребывая в режиме backgroud.

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

1.) Система ограничивает поведение приложений в режиме ожидании, при выключенном экране и при отсутствии подключения устройства к зарядке.

2.) Запрет на определение местоположения без специального запроса со стороны пользователя.

3.) Лимиты со стороны справочной службы, контролирующие запуск и потребление ресурсов процессора или сети скрытым образом.

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

Варианты использования и решения

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

Эта блок-схема может помочь вам принять решение

Блок схема для фоновых вариантов выполнения и решений

Администратор заданий рекомендуют в качестве лучшего решения для обеспечения фоновой работы с учетом всех ограничений ОС. Если необходимо гарантировать, что даже отложенная задача будет запущена, следует использовать WorkManager. Этот API позволяет планировать задания (разовые или повторяющиеся), а также контролировать их активацию не только по времени, но и по принципу совпадения определенных факторов. Например, вы сможете установить ограничение запуска тогда, когда устройство находится на зарядке или в режиме ожидания, а также активировать приложение в момент смены контент-провайдера.

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

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

Как происходит планирование работы с новым компонентом Android Jetpack «WorkManager»?

Если задание будет выполняться в ответ на внешнее событие, например, для синхронизации нового онлайн-контента, использования военнослужащими облачных сообщений, система сначала направит уведомление данному приложению. Затем workmanager создаст заявку для синхронизации содержимого. Об этом мы подробнее расскажем в статье “Уведомление пользователей с ФКМ”.

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

При необходимости выполнить задание в определенное время с участием пользователя, которое не может быть отложено, используйте Alarm Manager (метод set Exact And Allow While Idle). К подобным задачам можно отнести:

1. Напоминание о необходимости принять лекарства

2. Уведомление о начале телешоу.

Учтите, что при срабатывании сигнала ваше приложение будет активировано всего на несколько секунд, также у него не будет доступа в сеть (например, во время режима сна или из-за App Standby buckets). Если вам действительно необходимы доступ в сеть или возможность выполнения длительной задачи, используйте Work Manager. В таком случае в момент срабатывания сигнала устройство выйдет из режима низкого энергопотребления и перейдет в режим частичного бодрствования. Учтите, что с течением времени это отразится на сроке службы батареи. Вы сможете проконтролировать это в разделе статистики, которая расположена на в Google консоли.

Краткие сведения

Примечание: администратор заданий все еще находится в разработке, доступна только предварительная версия. Если вам необходимо аналогичное приложение прямо сейчас, воспользуйтесь  Job Scheduler. Будьте внимательны: она имеет ряд ограничений, несовместимых с администратором заданий. Инструмент Job Scheduler является частью Android Framework и доступен только для Android с API 21 и выше, тогда как администратор заданий работает уже с API 14 и следующими версиями.

Добавить комментарий

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

Contact

Давайте работать вместе!

Пишите нам и найдем точки соприкосновения, может станем партнерами, а может поможем вам зайти в нашу чудесную нишу

Вы разработчик?

Пишите! Нам постоянно нужны новые кадры, либо можем помочь в продвижении вашего приложения

Новичок?

Поможем быстро войти в нишу, не тратя годы на понимание

Давно в нише?

Рады будем пообщаться как на темы whitehat, так и blackhat тематики ^_^ + всегда есть что обсудить по поводу рекламных сетей

ПИШИ В TELEGRAM!

Contact