Одним из самых спорных вопросов, обсуждаемых при рассмотрении Windows Phone 7 Series, является многозадачность, а точнее ее отсутствие.
Как оказалось, этот вопрос волнует большое количество пользователей и разработчиков.
Давайте подробнее рассмотрим этот вопрос.
Для этого обратимся к реализации многозадачности в Windows Phone Classic (старое название — Windows Mobile 5.x, 6.x).
В Windows Phone Classic многозадачность была реализована полностью.
Это означает, что несколько приложений могут работать одновременно без паузы.
Это, по сути, некий аналог десктопной платформы, где процесс выглядит аналогично.
Однако давайте задумаемся – действительно ли использование подобного подхода для мобильной платформы так же оправдано, как и для десктопной? Попробуем представить типичный сценарий использования мобильных устройств.
Наверняка это потребует использования нескольких приложений по очереди в течение длительного времени.
Например, на данный момент я использую несколько таких приложений: просмотр фотографий, чтение электронной почты, чтение ленты Twitter, просмотр текущего трафика, проигрыватель Windows Media, редактирование и просмотр документов Microsoft Office, просмотр документов PDF, калькулятор и т. д. Если вы используете устройства в течение длительного времени, вы можете обнаружить, что все или часть этих приложений загружены в память, в то время как на данный момент они совершенно не нужны, так как нет необходимости их использовать.
Однако в настоящий момент они фактически загружаются в память и выполняются, нагружая процессор, занимая память и разряжая батарею.
Конечно, часть пользователей тщательно следит за тем, чтобы в данный момент загружались только необходимые приложения, но не все это делают. Именно по этой причине использование такого подхода для мобильной платформы не оправдано.
В некоторых мобильных платформах существует еще одна крайность — возможность одновременного запуска только одного приложения.
Такой подход также не верен, так как иногда всё же приходится запускать несколько приложений одновременно.
Классический пример — использование музыкального проигрывателя при использовании других приложений, например при чтении электронной почты.
Разработчики Windows Phone 7 Series решили не прибегать к крайностям и выбрали золотую середину.
На Windows Phone 7 Series одновременно может выполняться только одно запущенное приложение.
При этом существует набор системных приложений, которые можно запускать «в фоновом режиме».
При переходе в главное окно или переключении на другие окна текущее приложение переходит в приостановленное состояние.
Интересно, что операционная система в любой момент может полностью удалить этот процесс из памяти.
Поэтому при паузе следует сохранять состояние приложения, а при возвращении в приложение — восстанавливать это состояние.
Утилиты Windows Phone 7 Series самостоятельно сохраняют и восстанавливают состояние, поэтому разработчику приложения не нужно об этом беспокоиться.
Пользователь при переключении между приложениями также не заметит никакой разницы, если приложение было удалено из памяти - он вернется в то состояние, в котором приложение было в прошлый раз.
Существует также другой тип событий, которые могут прервать выполнение приложения.
Однако, в отличие от предыдущего сценария, в этом случае прерывание происходит на короткий период времени.
Такие перебои могут возникать, например, при входящем звонке или при срабатывании будильника.
В этом случае приложение продолжает работать в фоновом режиме.
Однако если приложение требует постоянного взаимодействия со стороны пользователя (например, игровое приложение), разработчик этого приложения может отреагировать на такие события и заставить приложение приостановить работу на время обработки внешнего события.
Описанный выше процесс более корректен с точки зрения мобильной платформы, поскольку позволяет избежать траты ресурсов на запуск ненужных фоновых приложений.
Более того, в этом случае состояние приложения сохраняется и восстанавливается автоматически, что, несомненно, очень удобно с точки зрения разработчика приложения.
Однако ряд задач невозможно решить с помощью описанного процесса.
Дело в том, что есть некоторые задачи, требующие фонового выполнения.
Например, это может быть приложение для записи GPS-трека пользователя или будильник, который должен сработать в определенный момент. К сожалению, этот функционал не реализован в версии Windows Phone 7 Series, которая была представлена на MIX 2010. Однако в настоящее время команда разработчиков работает над этим сценарием и в ближайшем будущем мы сможем попробовать реализовать такие сценарии.
Таким образом, видно, что подход к организации работы многих приложений в Windows Phone 7 Series стал более эффективным, чем он был ранее реализован в Windows Phone Classic. blog.zwezdin.com Теги: #.
NET #AppDev #silverlight #Технологии #windows phone #windows phone 7 #разработка для Windows Phone
-
Зенон Элейский
19 Oct, 24 -
Определение Типов Mime
19 Oct, 24