Как сделать напоминалку на Xamarin.Android?
07.02.2022
Как сделать приложение-напоминалку о различных событиях на Xamarin.Android?
Для такого приложения нужно освоить несколько тем из книги Разработка Android-приложений на С# с использованием Xamarin с нуля:
- Организация работы с уведомлениями. Об этом есть немного в книге. См. гл. 6. с.261. С помощью построителя уведомления можно указать собственную мелодию, а не ту, которая используется по умолчанию. Для этого применяют метод SetSound. В него нужно передать URI звукового файла, подключенного к проекту. В книге подключение других мелодий не рассматривается, но делается это так же, как установка значка. Просто нужно еще дополнительно вызвать метод SetSound, например после метода SetSmallIcon;
- Конечно нужно уяснить, как работать с SQLite. Это гл. 4. с.174-193;
- Уведомления можно показать по-разному. В ряде случаев для этого используют собственную службу. О сервисах написано в гл. 6. с.252. Служба должна опрашивать базу данных каждую секунду и сравнивать текущее время с тем временем, которое было назначено для запуска напоминания. Надо выбирать из базы те записи, время напоминания для которых становиться меньше текущего и отображать для них уведомления, помечая их просроченными, чтобы в последующие выборки они не попадали. Есть другой вариант. Использовать для этого диспетчер оповещений. Об этом сказано в гл. 6, с 290. Однако для такого варианта нужно иметь виду, что все задания, созданные при помощи диспетчера оповещений будут утрачены при перезагрузке или выключении устройства. Поэтому нужно позаботиться о том, чтобы они воссоздавались при загрузке гаджета. Для это нужно организовать приемник широковещательных сообщений, который будет стартовать после загрузки системы. Как это делать сказано в гл. 6, с.257. В нем нужно выбрать из базы те напоминания, время выполнения которых еще не наступило и создать для них задачи.
Пример такого решения выложен на GitHub. С ним можно ознакомиться перейдя по ссылке https://github.com/Umrikhin/xamarin-android-example/tree/master/Alerts. В этом примере используется диспетчер оповещений с широковещательным приемником.
Поделиться
Комментарии
Внимание!
Комментарии должны соответствовать тематике сайта, участникам необходимо соблюдать уважительную форму общения, запрещены оскорбления в обсуждениях в любой форме, не допускается писать текст коммерческого и рекламного характера, пропагандировать темы, несовместимые с общепринятыми законами морали и приличия. Не допустимые сообщения будут редактироваться или удаляться.