1

タイマー付きのアプリを作成しています。タイマーが終了したことを知らせるために、その人がアプリを離れた場合にトースト通知 (または何らかの通知) を表示したいと考えています。「.FromSeconds」を使って「PeriodicTask」を使ったのですが、指定した時間に起動しないようでした。

   PeriodicTask periodicTask = new PeriodicTask("TaskTest");
     periodicTask.Description = "Task";
     try
     {
         IsolatedStorageSettings.ApplicationSettings["TimerForSchedule"] = TimeNum;
         ScheduledActionService.Add(periodicTask);
         ScheduledActionService.LaunchForTest("TaskTest", TimeSpan.FromSeconds(((TimeNum*60)))); 
     }

スケジュールされたエージェント プロジェクトの「OnInvoke」メソッドには、次のようなものがあります。

protected override void OnInvoke(ScheduledTask task)
    {
        if (task.Name == "TaskTest")
        {

            int time = Convert.ToInt32(IsolatedStorageSettings.ApplicationSettings["TimerForSchedule"]);
            bool periodic = (bool)(task is PeriodicTask);
            ShellToast toast = new ShellToast();
            toast.Title = "Done";
            toast.Content = "Timer is over";
            toast.Show();
        }
        NotifyComplete();
        ScheduledActionService.Remove("TaskTest");
    }

通知を受け取るので、すべてが適切に起動しているように見えますが、予定の時間に通知が届きません。

どんな助けでも大歓迎です。

4

2 に答える 2

3

アプリはフォアグラウンドで実行されていますか? その場合、ShellToast は表示されません。アプリが表示されるには、アプリがバックグラウンドにある必要があります。それと潜在的な回避策の詳細については、他の @ How can I create a shelltoast? を参照してください。

于 2013-01-05T00:56:37.890 に答える