пятница, 28 декабря 2012 г.

WP Application - восстановление после захоронение

Состояние, в которое переходит приложение Windows Phone, в результате прерывания его работы при поступлении вызова или запуска другого приложения называется захороненным, а процесс приостановки работы приложения – захоронением.
Процесс запуска захороненного приложения называется восстановлением.

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

Сохранение и восстановление параметров обеспечивает объект PhoneApplicationService.

using Microsoft.Phone.Shell; // для доступа к PhoneApplicationSerivce
 

public partial class MainPage : PhoneApplicationPage

    {
        // обеспечивает сохранение и восстановление состояния приложения
        PhoneApplicationService appService = PhoneApplicationService.Current;
    

        // информация, необходимая для восстановления
        // состояния приложения после захоронения
        DateTime cDate;

     }

 
Работу по сохранению параметров и восстановлению состояния приложения следует возложить, соответственно, на функции onNavigatedTo и onNavigatedFrom.

Пример:
// Уход со страницы
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs args)
        {

            appService.State["cDate"] = cDate;
            base.OnNavigatedFrom(args);

        }

// Переход на страницу
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {

            if (appService.State.ContainsKey("cDate"))
            {
                // Страница восстановлена после захоронения
cDate = (DateTime)appService.State["cDate"];
            }

            else
            {
                cDate = DateTime.Now;
            }

        }
 
В приведенном примере признаком того, что приложение запущено после захоронения, является наличие параметра cDate.

Дистанционное обучение

Если вы хотите научиться программировать или узнать, как учат программистов "там", то загляните на портал EDX (https://www.edx.org/). Там вы найдете курсы, разработанные преподавателями ведущих университетов (HARVARD, MIT, Berkeley ), по программированию, искусственному интеллекту, статистике, компьютерной графике, электротехнике, физике  и др.
Изучив представленные в рамках курса материалы, выполнив задания, сдав дистанционно промежуточные и итоговый экзамены вы получите сертификат.