Как отобразить запланированный диалог в приложении Windows Phone 8.1 Runtime?

Я пытаюсь закодировать Timer-App с С# для среды выполнения Windows Phone 8.1. Моя цель - показать диалог и воспроизвести звуковой файл, когда таймер закончится. Если пользователь нажимает «ОК», звук останавливается. Также было бы здорово использовать функцию «Отложить». Может быть, не в этом приложении, но я тоже планирую персональный будильник. Потому что я мог бы добавить TimeSpan для таймера в DateTime. Теперь это был бы самый простой способ запуска в указанное время. Вот некоторые идеи, которые у меня были, но они не делают именно то, что я хочу.

  • Зарегистрируйте фоновую задачу. Но нет триггера на указанное время. Только TimeTrigger, который срабатывает не чаще, чем каждые 30 минут. Мне кажется, решение, не очень дружественное к ресурсам, состояло бы в том, чтобы посмотреть, находится ли ожидаемое время в пределах следующих 30 минут, и дождаться указанного времени в фоновой задаче и использовать ContantDialog. Не уверен, что это вообще возможно.
  • Другая возможность — использовать всплывающее уведомление, но нет возможности взаимодействия, и это не очень впечатляет, если вы хотите, чтобы кто-то заметил таймер.
  • Будильники и напоминания больше не доступны для приложений RT...

Неужели нет другого пути? Если есть триггер для фоновых задач, если подключение к Интернету активно, нет ли триггера для запланированного времени? Или, может быть, возможность самому закодировать что-то вроде старых будильников и напоминаний?

Жаль, что нет кода. Но у меня пока нет полезного кода для этой проблемы.

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


person Mr_Hayakul    schedule 11.11.2014    source источник


Ответы (1)


Единственный реальный способ добиться этого - с помощью будильника, который (как вы заметили) предназначен только для Silverlight.

Для приложения времени выполнения всплывающее уведомление ближе всего, но не так тревожно. Как только пользователь коснется всплывающего уведомления (если вообще коснется), он сможет запустить приложение для получения более подробной информации. Тосты (особенно когда они связаны с обновлением плитки) хороши для календаря и напоминаний о задачах, но если вам нужен будильник, вам действительно нужен API будильника (только для Silverlight).

Фоновая задача не может отображать какой-либо пользовательский интерфейс (кроме поднятия всплывающего уведомления, для которого не требуется фоновая задача), поэтому, даже если бы вы могли правильно выбрать время, она не могла бы показать ContentDialog.

person Rob Caplan - MSFT    schedule 12.11.2014
comment
Эй, спасибо за ваш ответ. Я думаю, что тогда мне нужно использовать Silverlight для этой функциональности... - person Mr_Hayakul; 18.11.2014