我创建了一个简单的周期性任务,每隔15秒显示一次Toast消息。但它只展示了一次吐司,再也没有。我只在调试模式下运行项目。 这是我的代码。我在哪里犯了错误?
//这是主要代码
private void button1_Click(object sender, RoutedEventArgs e)
{
// A unique name for your task. It is used to
// locate it in from the service.
var TASK_NAME = "ScheduledTaskAgent1";
PeriodicTask task = new PeriodicTask(TASK_NAME);
task.Description = "This is our custom agent for Day 25 - Background Agents";
ScheduledActionService.Add(task);
ScheduledActionService.LaunchForTest(TASK_NAME,
TimeSpan.FromMilliseconds(1500));
}
//这是预定的执行代码
protected override void OnInvoke(ScheduledTask task)
{
//TODO: Add code to perform your task in background
ShellToast popupMessage = new ShellToast()
{
Title = "My First Agent",
Content = "Background Task Launched",
};
popupMessage.Show();
NotifyComplete();
}
答案 0 :(得分:1)
LaunchForTest在指定的延迟后调用您的任务一次,顺便说一下,您指定为1.5秒而不是15.在OnInvoke中,在NotifyComplete()之前添加以下内容;
ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(15));
不要忘记,LaunchForTest旨在用于开发,不应在发布版本中使用。
答案 1 :(得分:0)
您无法经常调用任务。系统会在约28分钟内启动您的代理。此处列出了定期代理的约束:https://msdn.microsoft.com/en-us/library/windows/apps/hh202942(v=vs.105).aspx#BKMK_ConstraintsforPeriodicAgents