Манго на вкус… Напоминания

Posted on Июнь 27, 2011

1


Привет всем. Сегодня я начал днем серию небольших статей о манго. Первое о чем хотелось бы поговорить — напоминания… Вот и настала эра будильников и прочей фигни, которая постоянно будет вылазить и просить перейти в нее. Представьте, если каждая игра поставит себя в напоминания и будет каждый день говорить: «зайди в меня». Правда все можно остановить простым удалением… о чем это я?

Ах да, чудо фрукт!

Напоминания.

Более обобщенно — задачи по расписанию. Это позволит вам создать напоминание и выйти из приложения. И даже когда вы не в приложении, напоминание все равно будет моргать. Когда напоминание случается, вы можете его отложить, перейти к приложению или отменить совсем. И еще, вы можете переходить к любой странице приложения… Представьте сколько кривых приложений появится? Не говоря уже о модели поведения и очереди страниц. Об этом позже, сегодня продолжим о напоминаниях.

Начнем. Для начала создадим новое приложение. Кстати, что-то никто не говорил об этом, но с бета инструментами для разработчиков появилось несколько новых шаблонов для проектов. Их обзор я сделаю немного позже, сейчас просто посмотрите на список:

Создадим простое приложение с одной кнопкой. В коде страницы в событии нажатия напишем следующий код:

void Reminder_Click( object sender, RoutedEventArgs e )
{
   Reminder r = new Reminder( "Dinner" );
   r.Title = "Dinner";
   r.Content = "Time to eat dinner";
   r.BeginTime = DateTime.Now.AddSeconds( 10 );
   r.NavigationUri = NavigationService.CurrentSource;
   ScheduledActionService.Add( r );
}

Мы задали напоминание, его название, содержание, время начала, ссылку для перехода и добавили напоминание. Хочу заметить, что если запустить приложение и нажать кнопку два раза, то выпадет исключение:

Как и предполагалось, напоминания в границах одного приложения не имеют ничего общего с прочими напоминаниями. Т.е. если вы создадите два приложения с такими кнопками и нажмете их по очереди, то все будет нормально. Так что вам придется использовать методы ScheduledActionService для управления уже существующими напоминаниями:

Так же есть поле с временем (ExpirationTime) через которое у напоминания выйдет срок и оно уйдет из очереди.

Реклама