Windows 10 (UWP)中小于15分钟的定时触发器/调度程序

6

我发现使用TimeTrigger是在Windows 10(UWP)上进行计划后台任务的方法。然而,看起来我们需要给出的最短时间是15分钟。只是想知道,即使我们将其安排在下一分钟运行,闹钟和提醒对Windows 10的工作方式如何。

我正在寻找一个解决方案,在特定时间触发任务,其中包括少于15分钟。

有人能够为此提供一些启示吗?


1
闹钟和提醒是不同的。你不需要使用 TimeTrigger 来创建它们。https://dev59.com/yY3da4cB1Zd3GeqP2ZoN - Justin XL
我在Github上查看了示例代码,发现闹钟和其他提示是基于按钮点击显示的。你知道如何将它们附加到一个定时器上,即使前台应用程序没有运行?我不确定它是如何在预定时间运行的。正如Jeffrey指出的那样,是通过"ToastNotificationManager.CreateToastNotifier().AddToSchedule"来实现的吗?在Github的Windows 10示例中有相关的代码吗? - My Helper
有没有想法以类似的方式安排运行一段代码块(可能少于15分钟,根据用户选择的时间)? - My Helper
1个回答

4
闹钟和时钟应用程序使用了定时弹出通知而不是后台任务。

enter image description here

这里是定时在10秒后弹出提示框的示例代码。
namespace UWPApp
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        private Random random = new Random((int)DateTime.Now.Ticks);

        const string TOAST = @"
<toast>
  <visual>
    <binding template=""ToastGeneric"">
      <text>Sample</text>
      <text>This is a simple toast notification example</text>
      <image placement = ""AppLogoOverride"" src=""oneAlarm.png"" />
    </binding>
  </visual>
  <actions>
    <action content = ""check"" arguments=""check"" imageUri=""check.png"" />
    <action content = ""cancel"" arguments=""cancel""/>
  </actions>
  <audio src =""ms-winsoundevent:Notification.Reminder""/>
</toast>";


        public MainPage()
        {
            this.InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var when = DateTime.Now.AddSeconds(10);

            var offset = new DateTimeOffset(when);

            Windows.Data.Xml.Dom.XmlDocument xml = new Windows.Data.Xml.Dom.XmlDocument();

            xml.LoadXml(TOAST);

            ScheduledToastNotification toast = new ScheduledToastNotification(xml, offset);

            toast.Id = random.Next(1, 100000000).ToString();

            ToastNotificationManager.CreateToastNotifier().AddToSchedule(toast);
        }
    }
}

我明白了。那么,这个会在后台运行吗?即使前台应用程序没有运行,AddToSchedule 也会运行吗?有没有办法在不到10分钟的时间内执行一段代码块? - My Helper
有什么想法可以以类似的方式安排运行一段代码块(可能少于15分钟,根据用户选择的时间)吗? - My Helper
这实际上回答了我的关于闹钟及其时间的问题。标记为答案。 - My Helper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接