- Да, для этого есть механизм push-уведомлений и push-сервер, расположенный на стороне Microsoft. То есть мы его предоставляем разработчикам бесплатно и разработчик в своем приложении реализует интерфейс работы с этим push-сервером. Когда происходит какое-то событие, то это событие обрабатывается самим приложением: оно может что-то сделать или изменить значок в главном меню. Классический пример - это количество непрочитанных писем в почте, но так же можно сделать всё, что угодно: "тайл" на главном экране может полностью видоизменяться. Ещё один тип - это так называемое тост-уведомление, которое появляется в верхней части экрана телефона. Классический пример - это появление сетей Wi-Fi вокруг: появляется табличка вверху, сообщающая, что обнаружена новая сеть. То же самое можно реализовать и в своём приложении, чтобы уведомлять пользователя о каком-то событии.
- Это полезно для клиентов всяких социальных сетей и прочих похожих приложений. Но есть и другая сторона. Вы упомянули два примера с появлением Wi-Fi и уведомлением из приложения. А нельзя ли связать, скажем так, эти два события: приложение реагирует на появление Wi-Fi или ещё какие-то изменившиеся условия?
- Для этого необходимо, чтобы был программный доступ к уведомителю Wi-Fi. Соответственно сейчас такой функции нет.
- С многозадачностью есть ещё такой аспект, как восстановление состояния приложения. То есть человек вышел из приложения, перешёл в другое, может быть, давно забыл о первом. К примеру, у него было что-то написано в текстовом редакторе, и он возвращается к этому текстовому редактору. Всё будет на том же месте, где он всё это оставил?
- Это зависит от того, как разработчик реализует приложение, но действительно, такая возможность есть - м ыговорим о так называемом изолированном хранилище, в котором можно сохранять те или иные данные со своего приложения. Это та же возможность, которая есть в Silverlight на десктопе, ею можно пользоваться или не пользоваться - на усмотрение разработчика.
- То есть в тот момент, когда пользователь выходит из приложения, оно получает какой-то сигнал и может сохранить данные в этот момент?
- Да, это происходит. В английском языке есть хорошее слово "tombstoning", которое на русский не очень хорошо переводят как "захоронение". В процессе выхода из приложения происходит его сохранение, и прежнее состояние может быть полностью восстановлено.
- Но реализовать это должен разработчик?
- Разработчику доступны методы, которыми он может воспользоваться, чтобы это реализовать. А что касается выхода и перехода из разных приложений, я думаю, вы знаете, что в телефонах Windows Phone 7 есть три аппаратные кнопки: это "назад", "пуск" и "поиск". И если реализация локального хранилища опциональна, то правильная обработка команды "назад" необходима. Например, если я читал письмо в почтовом клиенте и нажимаю кнопку "назад", то я должен вернуться к списку папок, а не выйти из приложения.
- Работает ли кнопка "назад" между приложениями?
- Она работает и между приложениями. Если я, например, запустил приложение для фотографий, а потом открыл почтовый клиент, а там выбрал письмо, то после нажатия кнопки "назад" один раз я должен вернуться к списку писем, а при нажатии второй раз я вернусь к приложению с фотографиями. То есть это сквозная навигация между приложениями. Если стороннее приложение имеет разные составные части, разработчик должен правильно реализовать переходы между ними.
- Как я понимаю, разработчики не могут пока создать что-нибудь вроде собственного плеера, который будет играть музыку, даже когда пользователь перешёл в другое приложение?
- В фоновом режиме реализовать свой собственный плеер не получится, соответственно не в фоновом это можно сделать.