Pull to refresh

Comments 24

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

За напоминание — спасибо — сейчас в текст добавлю.
на эмуляторе для тестов может раз в 10 минут запускаться
На эмуляторе под отладкой можно запускать с любоай разумной переодичностью:

ScheduledActionService.LaunchForTest(UpdateTileAgentName, TimeSpan.FromSeconds(10));
У фоновых агентов есть еще одно ограничение — они работают максимум 2 недели с момента запуска. Как минимум раз в две недели агент необходимо перезапускать. А сделать это можно только из приложения, так как агент сам себя перезапустить не может.

Предположим, пользователь установил приложение, запустил его и добавил тайл на рабочий стол. О, чудо, тайл обновляется, все супер! Счастливый пользователь теперь может получать актуальную информация, не запуская постоянно программу. Но через две недели случиться фейл… Агент перестанет работать, а пользователь об этом не узнает и будет думать, что информация на тайле по-прежнему свежа.

Сам недавно мучился с этой проблемой. Решения пока не придумал. Раз в две недели писать на тайле что-то вроде «нажми меня, чтобы я мог обновляться дальше» на мой взгляд не очень круто.

P.S.
А погодные приложения, про которые сказано в начале статьи, скорее всего обновляются, используя ShellTileSchedule. Это механизм, позволяющий периодически грузить с удаленного сервера картинку для тайла. И, если мы генерируем контент для тайла локально, использовать его не получиться.

Если я где-то не прав, поправьте меня.
Да, 2 недели максимальное время — я дописал в UPD.

Погодное приложение имеет BackGroud Agent при отключении которого, как мне показалось, погода на тайле перестала обновляется. Хотя с такой погодой которая сейчас стоит в Москве, я мог и ошибиться.

Но сегодня, когда на вечерней школе мне задали тот же вопрос — про ренью агента в агенте, вспомнив про приложение начал сомневаться, что оно использует агента именно для обновления погодного тайла.
Думаю, рассчитывают на сцерании, что хотя бы раз в 2 недели пользователь запустит «полезное» приложение. У меня где-то так и выходит — уточнить раскладку температуры вперёд на неделю, например.
Ну это понятно. Просто я пытался написать приложение, где вся функциональность — периодический вывод информации, генерируемой локально, на тайл. В таком случае рассчитывать на периодический запуск приложения не приходиться.
Что же касается ShellTileSchedule который может работать «бесконечно» — да это решение, но у него тоже есть ограничения — он обновляет только background image, причём берёт URI только на удалённый. Это означает, что нужен север и сервис генерации кратинок.
Тут еще проблема. Это ограниченный выбор частоты обновления. Если нужны свежие данные и часто, то уж лучше BA использовать.
Еще одно замечание, возможно такое наблюдается только у меня, но у меня не работает этот код
#if DEBUG
ScheduledActionService.LaunchForTest(UpdateTileAgentName, TimeSpan.FromSeconds(10));
#endif

помогло это
#if DEBUG_AGENT
ScheduledActionService.LaunchForTest(UpdateTileAgentName, TimeSpan.FromSeconds(10));
#endif

может кто-то сэкономит время.
Зависит от того, какие символы прописаны в компиляции в свойствах проекта.
Эм, а линк на выбранное приложение погоды?)
Мне кажется, что фоновые агенты «слегка» параноидально урезаны в функциональности
Отнюдь не параноидально. Телефон должен кушать мало энергии.
К сожелению, вп7 не демонстрирует выдающихся над андроидом результатов по времени автономной работы.
Сложно сказать. Мой сутки держит при достаточно активной работе. Андроидов не было.
Такая же ситуация. Постоянно включен WiFi, частенько радио, плюс игры по пути на/с работы. Заряжать приходится реже, чем раз в сутки. Андроида не была, сравнивать не могу.
Мой HD7 выдерживает день только если его использовать как простой телефон (и то — редко). Это позорище. Вы оба пишите, что андроидов не было, так что вам получается, действительно не с чем сравнивать.
HTC Mozart. Как телефон 3-5 дней, в зависимости от местонахождения; с постоянно включенными 3g, WiFi 1-2 дня, в зависимости от того, где нахожусь: g-e-3g-h оч. энергозатратные переключения
У меня почему-то тайлы обновляются только когда телефон на зарядке или когда edge включен. Т.е. Тогда, когда есть постоянный доступ в сеть. При этом при обычном использовании к вайфаю коннектится только при разблокировке. У всех так? И если да то как у вас тайлы так хорошо обновляются?
На WP7 Wi-Fi работает только при разблокированном экране. Как только блокируете экран, почти сразу соединение по Wi-Fi пропадает. Исключение — телефон на зарядке. В это время Wi-Fi работает постоянно. И, вроде бы, если скачиваете приложение из Marketplace через Wi-Fi, то оно докачается даже после блокировки экрана. Так что для постоянного обновления «живых плиток» нужно подключение через «передачу данных».
Это о конкретной модели речь? У меня Samsung Omnia W. Только что проверил — при обновлении игры на 50% нажал power, через минуту включил, увидел, что все благополучно загружено.
Sign up to leave a comment.