Лекция 9
Раздел 8.1
Windows Phone Темы раздела 3
Windows Phone Пользовательский интерфейс 4
Windows Phone Экран меню «Пуск» 5
Windows Phone Значки в программе Silverlight 6
Windows Phone Значки в программе XNA 7
Windows Phone Экран-заставка 8
Windows Phone Экран-заставка в Silverlight 9
Windows Phone Экран-заставка в XNA 10
Windows Phone Стратегия загрузки игры XNA 11
Windows Phone Краткие итоги 12
Раздел 8.2
Windows Phone Темы раздела 14
Windows Phone Управление задачами 15
Windows Phone Кнопки «Назад» и «Пуск» 16
Windows Phone «Длинное нажатие» на «Назад» 17
Windows Phone Неактивные приложения 18
Windows Phone Жизненный цикл приложения 19
Windows Phone Запуск приложения 20
Windows Phone Закрытие приложения 21
Windows Phone Переход к другому приложению 22
Windows Phone Возобновление работы 23
Windows Phone Выгрузка приложения из памяти 24
Windows Phone Журнал заметок 25
Windows Phone Данные в приложении // эти переменные используются во всех страницах // здесь хранится весь журнал заметок в виде длинной строки public string LogText; // здесь хранится запись, которую вводит пользователь public string LogEntry; 26
Windows Phone Отображение данных protected override void OnNavigatedTo( System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); // получение ссылки на активное приложение App thisApp = App.Current as App; // вывод текста заметки на экран logTextBox.Text = thisApp.LogEntry; } 27
Windows Phone Сохранение данных protected override void OnNavigatedFrom( System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedFrom(e); // получение ссылки на активное приложение App thisApp = App.Current as App; // сохранение текста заметки в памяти приложения thisApp.LogEntry = logTextBox.Text; } 28
Windows Phone Изолированное хранилище private void SaveToIsolatedStorage() { saveTextToIsolatedStorage("Log", LogText); saveTextToIsolatedStorage("Entry", LogEntry); } 29
Windows Phone События приложения 30
Windows Phone Методы переключения 31
Windows Phone Методы переключения private void Application_Launching(object sender, LaunchingEventArgs e) { } private void Application_Activated(object sender, ActivatedEventArgs e) { } private void Application_Deactivated(object sender, DeactivatedEventArgs e) { } private void Application_Closing(object sender, ClosingEventArgs e) { } 32
Windows Phone Сохранение данных private void Application_Closing(object sender, ClosingEventArgs e) { SaveToIsolatedStorage(); } 33
Windows Phone private void Application_Launching(object sender, LaunchingEventArgs e) { LoadFromIsolatedStorage(); } Загрузка данных 34
Windows Phone Деактивация приложения private void Application_Deactivated(object sender, DeactivatedEventArgs e) { SaveToIsolatedStorage(); SaveToStateObject(); } 35
Windows Phone Активация приложения private void Application_Activated(object sender, ActivatedEventArgs e) { if (!e.IsApplicationInstancePreserved) { LoadFromStateObject(); } 36
Windows Phone The State Object private void SaveTextToStateObject(string filename, string text) { IDictionary stateStore = PhoneApplicationService.Current.State; stateStore.Remove(filename); stateStore.Add(filename, text); } 37
Windows Phone Краткие итоги 38
Раздел 8.3
Windows Phone Темы раздела 40
Windows Phone Задачи запуска и задачи выбора 41
Windows Phone Задачи запуска и задачи выбора 42
Windows Phone Вызов задач запуска или выбора 43
Windows Phone Примеры задач запуска 44
Windows Phone Использование задачи запуска 45
Windows Phone Кнопка «отправить» private void mailButton_Click(object sender, RoutedEventArgs e) { sendMail("Сообщение из программы", jotTextBox.Text); } 46
Windows Phone Метод sendMail private void sendMail(string subject, string body) { ComposeTask = new ComposeTask(); .Body = body; .Subject = subject; .Show(); } 47
Windows Phone Задачи выбора 48
Windows Phone Примеры задач выбора 49
Windows Phone Использование задачи выбора 50
Windows Phone Класс PhotoChooserTask PhotoChooserTask photoChooser; public MainPage() { InitializeComponent(); photoChooser = new PhotoChooserTask(); photoChooser.Completed += new EventHandler (photoChooser_Completed); } 51
Windows Phone Обработчик события void photoChooser_Completed(object sender, PhotoResult e) { if (e.TaskResult == TaskResult.OK) { selectedImage.Source = new BitmapImage(new Uri(e.OriginalFileName)); } 52
Windows Phone Вызов задачи private void loadButton_Click(object sender, RoutedEventArgs e) { photoChooser.Show(); } 53
Windows Phone Краткие итоги 54
Раздел 8.4
Windows Phone Темы раздела 56
Windows Phone Фоновые агенты 57
Windows Phone Управление агентами 58
Windows Phone Агенты и задачи 59
Windows Phone Периодические задачи 60
Windows Phone Ресурсоёмкие задачи 61
Windows Phone Создание фонового агента 62
Windows Phone Программный код агента namespace LocationTaskAgent { public class ScheduledAgent : ScheduledTaskAgent { protected override void OnInvoke(ScheduledTask task) { // здесь должен быть код для выполнения задачи NotifyComplete(); } 63
Windows Phone Данные агента 64 protected override void OnInvoke(ScheduledTask task) { string message =""; string logString = ""; if (loadTextFromIsolatedStorage("Log", out logString)) { message = "Загружено"; } else { message = "Инициализировано"; }... }
Windows Phone Определение местоположения 65 protected override void OnInvoke(ScheduledTask task) {... GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(); watcher.Start(); string positionString = watcher.Position.Location.ToString() + System.Environment.NewLine;... }
Windows Phone Сохранение информации 66 protected override void OnInvoke(ScheduledTask task) {... logString = logString + timeStampString + positionString; saveTextToIsolatedStorage("Log", logString);... }
Windows Phone Отображение уведомления 67 protected override void OnInvoke( ScheduledTask task) { ShellToast toast = new ShellToast(); toast.Title = "Журнал сообщений"; toast.Content = message; toast.Show(); }
Windows Phone Отладка фоновых задач 68 #if DEBUG_AGENT ScheduledActionService.LaunchForTest(taskName, TimeSpan.FromSeconds(60)); #endif
Windows Phone Задачи передачи файлов 69
Windows Phone Политики передачи файлов 70
Windows Phone Запланированные уведомления 71
Windows Phone Агенты воспроизведения звука 72
Windows Phone Краткие итоги 73