Цифровой журнал «Компьютерра» № 52 (Журнал «Компьютерра») - страница 10

- Ещё одна сторона Windows Phone 7, заметная как пользователю, так и разработчику, — это многозадачность. Как я понимаю, запустить какое-то приложение, чтобы оно продолжало работать в фоне на Windows Phone 7, сейчас нельзя?

- На Windows Phone 7 реализована вытесняющая многозадачность, которая, с одной стороны, даёт приложениям в фоновом режиме получать сообщения об изменениях в тех или иных состояниях, а с другой, не нагружает сам телефон. Таким образом, срок его действия от батареи увеличивается, а работа не замедляется. При этом он может выполнять параллельно те вещи, которые мы привыкли делать параллельно; например, слушать музыку и выполнять другие задачи на телефоне вполне возможно. Или, например, загружать почту в фоновом режиме тоже можно.

- Ну, музыка и почта — это встроенные приложения. Сторонний разработчик может создать приложение, которое будет продолжать работать в телефоне после того, как пользователь перешёл к другому приложению?

- Да, для этого есть механизм push-уведомлений и push-сервер, расположенный на стороне Microsoft. То есть мы его предоставляем разработчикам бесплатно и разработчик в своем приложении реализует интерфейс работы с этим push-сервером. Когда происходит какое-то событие, то это событие обрабатывается самим приложением: оно может что-то сделать или изменить значок в главном меню. Классический пример — это количество непрочитанных писем в почте, но так же можно сделать всё, что угодно: «тайл» на главном экране может полностью видоизменяться. Ещё один тип — это так называемое тост-уведомление, которое появляется в верхней части экрана телефона. Классический пример — это появление сетей Wi-Fi вокруг: появляется табличка вверху, сообщающая, что обнаружена новая сеть. То же самое можно реализовать и в своём приложении, чтобы уведомлять пользователя о каком-то событии.

- Это полезно для клиентов всяких социальных сетей и прочих похожих приложений. Но есть и другая сторона. Вы упомянули два примера с появлением Wi-Fi и уведомлением из приложения. А нельзя ли связать, скажем так, эти два события: приложение реагирует на появление Wi-Fi или ещё какие-то изменившиеся условия?

- Для этого необходимо, чтобы был программный доступ к уведомителю Wi-Fi. Соответственно сейчас такой функции нет.

- С многозадачностью есть ещё такой аспект, как восстановление состояния приложения. То есть человек вышел из приложения, перешёл в другое, может быть, давно забыл о первом. К примеру, у него было что-то написано в текстовом редакторе, и он возвращается к этому текстовому редактору. Всё будет на том же месте, где он всё это оставил?