0

特定の時間に複数のトーストを表示する必要がある 1 つのアプリケーション (windows phone 8) を作成しています。そのために、1 つの「ScheduledTaskAgent」プロジェクトを使用します。

protected override void OnInvoke(Microsoft.Phone.Scheduler.ScheduledTask task)
{

    ShellToast toast = new ShellToast();
    toast.Content = task.Description;
    toast.Show();

    NotifyComplete();

    ScheduledActionService.Remove(task.Name);
}

新しいタスク/トーストを追加するには、次のようにします。

 private static void AddToSchedule(DateTime date, string id, Toast toast)
{
    PeriodicTask periodicTask = new PeriodicTask(toast.Id);

    periodicTask.Description = toast.Title;
    ScheduledActionService.Add(periodicTask);
    var showIn = date - DateTime.Now;
    ScheduledActionService.LaunchForTest(toast.Id, showIn);
}

タスク/トーストを1つ追加すると、機能します。しかし、さらに追加したい場合は、System.InvalidOperationException が 1 つあります。

(つまり、BNS エラー: このタイプの最大数の ScheduledActions が既に追加されています。)

これを変更して、1 つのタスクにトーストを追加できるようにするにはどうすればよいですか。

更新しました :

AddToSchedule() を変更したところ、動作するようになりました。

 private static void AddToSchedule(DateTime date, string id, Toast toast)
{
    Reminder reminder = new Reminder(toast.Id);
    reminder.Title = toast.Title;
    reminder.Content = toast.Title;
    reminder.BeginTime = DateTime.Now.AddMinutes(1);
    reminder.ExpirationTime = reminder.BeginTime.AddSeconds(5.0);
    reminder.RecurrenceType = RecurrenceInterval.None;
    ScheduledActionService.Add(reminder);
}

リマインダーの代わりにトーストを使用する方法はありますか?

4

1 に答える 1

1

特定の時間にリマインダーをユーザーに表示する場合は、いくつかのオプションがあります。

デバイスから通知を発生させたい場合は、Alertまたはを使用できますReminder

Toast通知を表示したい場合は、リモート ソースからPush Notification.

于 2013-03-18T17:52:03.843 に答える