Быстрое восстановление состояния приложения Windows Phone 7.5

Модель исполнения приложений Windows Phone 7 устроена так, что после деактивации приложения оно может быть выгружено из памяти. Поэтому при повторном обращении к приложению оно должно восстановить свое состояние. В некоторых случаях восстановление состояние при повторном обращении к приложению может занимать длительное время. Поэтому в Mango появилась возможность быстрого восстановления состояния.

Как известно, восстановление состояния происходит в обработчике события Application.Activated. Если приложение было выгружено недавно и ОС не успела выгрузить его состояние из памяти, то восстанавливать состояние необязательно. Для отслеживания таких ситуаций был добавлен специальный флаг IsApplicationInstancePreserved. Если значение этого флага установлено в true, то можно пропустить этап восстановления состояния:

private void Application_Activated(object sender, ActivatedEventArgs e)
{
  if (e.IsApplicationInstancePreserved == false)
  {
    // restore state
  }
  else
  {
    // ignore state restoring
  }
}