Ответ 1
Большая часть работы для FAS обрабатывается автоматически. Главное, чтобы иметь в виду, что Tombstoning означает ваше приложение. При возобновлении через FAS цель состоит в том, что вам не нужно что-то делать без надгробия, поэтому обычно нет необходимости восстанавливать состояние модели просмотра или что-то в этом роде. Есть несколько мест, для которых вам нужно будет написать код - вот быстрый контрольный список.
PhoneApplicationPage.OnNavigatingFrom - экспериментируйте с элементами управления, которые вы используете, чтобы убедиться, что FAS восстанавливает данные, которые были там для вас. Например - элемент управления TextBox правильно запоминает все, что вы вложили в него, но MediaElement не запоминает видео или место, где была воспроизведена головка.
PhoneApplicationPage.OnNavigatedTo. Все, что вы сохранили в OnNavigatingFrom, должно быть повторно применено здесь в OnNavigatedTo. Например, перезагрузите источник видео в MediaElement, переставив видео и снова запустив его.
Application.Activated. Событие args для этого события теперь содержит свойство IsApplicationInstancePreserved. Это свойство возвращает TRUE, когда приложение возвращается через FAS, или FALSE, когда приложение возвращается из Tombstoning. Таким образом, у вас будет код примерно так:
private void Application_Activated(object sender, ActivatedEventArgs e)
{
if (!e.IsApplicationInstancePreserved)
{
RestoreStateFromTombstone();
}
}
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
SaveStateForTombstone();
}
Это необходимое. Я еще не делал никаких реальных стресс-тестов в инфраструктуре FAS, чтобы увидеть, где он ломается, но это послужило мне хорошим опытом для экспериментов, которые я сделал до сих пор.
Для получения дополнительной информации есть короткое видео с конференции MIX11 под названием Get Ready for Fast Application Switching, представленной Адиной Труфинеску, в которой содержится более подробная информация о FAS, которая определенно помогла мне начните.
/Крис