Простое приложение секундомера с компоновкой реактивного ранца с использованием переднего плана и связанных сервисов.
Проверьте YouTube на наличие полного видеоурока.
Это приложение в основном состоит из трех различных текстовых блоков, представляющих часы, минуты и секунды. Также у нас есть две кнопки в пользовательском интерфейсе. Первая кнопка будет изменена в зависимости от состояния службы, а вторая кнопка позволит нам отменить приоритетную службу, что приведет к сбросу нашего секундомера.
Управлять секундомером можно либо с помощью кнопок пользовательского интерфейса, либо с помощью панели уведомлений. Поскольку мы используем сервисы, даже если мы закроем приложение, мы также сможем отслеживать состояние секундомера с помощью панели уведомлений.
Hilt — это библиотека внедрения зависимостей для Android, которая упрощает шаблонное внедрение зависимостей вручную в ваш проект. Выполнение внедрения зависимостей вручную требует от вас создания каждого класса и его зависимостей вручную, а также использования контейнеров для повторного использования и управления зависимостями.
Hilt предоставляет стандартный способ использования внедрения зависимостей в вашем приложении, предоставляя контейнеры для каждого класса Android в вашем проекте и автоматически управляя их жизненными циклами. Hilt построен на основе популярной библиотеки DI Dagger и обеспечивает корректность времени компиляции, производительность во время выполнения, масштабируемость и поддержку Android Studio, которую обеспечивает Dagger.
Привязанная служба — это реализация класса Service, которая позволяет другим приложениям привязываться к ней и взаимодействовать с ней. Чтобы обеспечить привязку для службы, необходимо реализовать метод обратного вызова onBind(). Этот метод возвращает объект IBinder, определяющий программный интерфейс, который клиенты могут использовать для взаимодействия со службой.
Службы переднего плана выполняют операции, заметные пользователю.
Службы переднего плана отображают уведомление в строке состояния, чтобы пользователи были в курсе, что ваше приложение выполняет задачу на переднем плане и потребляет системные ресурсы.
Устройства под управлением Android 12 (уровень API 31) или выше обеспечивают оптимизированную работу кратковременных служб переднего плана. На этих устройствах система ждет 10 секунд, прежде чем отобразить уведомление, связанное с приоритетной службой. Есть несколько исключений; некоторые типы сервисов всегда отображают уведомление сразу.