Обратный вызов, когда напоминание отображается в приложении - PullRequest
1 голос
/ 27 декабря 2011

Мне нужно знать, когда в моем приложении отображается напоминание из моего приложения.Я думал, что попробую поместить необходимый код в OnNavigatedTo, и он будет вызван, когда всплывающее окно с напоминанием будет отклонено, но это не так.

Так что я ищу какой-нибудь способ получить обратный вызов в моем приложениинапоминание показывается / отклоняется.

Ответы [ 2 ]

0 голосов
/ 31 декабря 2011

Я использовал простое событие RootFrame, чтобы проверить, было ли показано мое напоминание.работает отлично!:)

0 голосов
/ 27 декабря 2011

Это лучшее, что я мог придумать.Reminder и служба планировщика не имеет механизма для регистрации событий (возможно, поэтому вы задали этот вопрос), поэтому я попробую кое-что по этому пути.Код говорит сам за себя.Вы регистрируете таймер, который будет выполняться одновременно с напоминанием.Однако тик таймера не будет запущен потоком, который вызовет напоминание, он просто будет выполнен одновременно.Вы можете зарегистрировать обратный вызов, и он вызовет ваш метод.

public class MyReminder : Microsoft.Phone.Scheduler.ScheduledNotification
{
    public Action MyCallback { get; set; }

    public void TimerCallback(object state)
    {
        if (MyCallback != null)
        {
            try
            {
                MyCallback();
            }
            catch { }
        }
    }

    public override DateTime ExpirationTime
    {
        get
        {
            return base.ExpirationTime;
        }
        set
        {
            base.ExpirationTime = value;

            System.Threading.Timer timer = new System.Threading.Timer(TimerCallback);
            timer.Change((long)(value - DateTime.Now).TotalMilliseconds, Timeout.Infinite);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...