Course Content
-
Разработка приложения Фитнес-календарь
- Описание проекта
- Разработка графического интерфейса для отображения списка запланированных тренировок
- Создание уведомления Notification
- Создание PendingIntent
- Разработка интерфейса для создания напоминания о тренировке
- Создание локальной БД для хранения информации о тренировках
- Создание BroadcastReceiver
- Создание каналов уведомлений
- Доработка методов для отображения уведомлений
- Описание Alarm Manager
- Реализация механизма напоминания через AlarmManager
- Cоздание PendingIntent и добавление его к AlarmManager.
- Выводы
Выводы
Поздравляю! Вы только что создали приложение для тренировок, при этом изучили такие важные концепты Android – разработки как:
- Реализация механизма напоминаний через AlarmManager
- BroadcastReceiver
- PendingIntent
- Notifications и NotificationChannels
После того как пользователь нажмёт кнопку Добавить и приложение запишет информацию в БД нужно добавить вызов метода scheduleAlarmsForReminder() в SecondFragment
AlarmScheduler.scheduleAlarmsForReminder(activity?.applicationContext!!, reminder!!)
После этого запланируйте тренировку и проверьте работу уведомлений. Если вы всё сделали правильно то в результате вы увидите автоматическое уведомление о тренировке в заданное вами время:
Ну вот и всё! Приложение готово! Безусловно, здесь можно добавить ещё множество доработок – но основная цель выполнена. Дальше вы сможете сами доделать то, что вам нужно, например, возможность редактирования напоминаний или добавления звука и вибрации к вашим уведомлениям – это остаётся в качестве дополнительного задания!
Итоговый результат вы можете посмотреть в ветке feature/05-broadcast-and-alarmmanager по ссылке на Github
Понравился материал? Не забудь подписаться и поставить лайк, а ещё
- Не забудьте присоединиться к нам в Telegram — на канале @android_school_ru публикуются полезные материалы для Android-разработчика и скидки на продвинутые курсы
- новый чат @android_school_talk задаём вопросы и предлагаем идеи для улучшения курсов на AndroidSchool.ru