MaintenanceTrigger可以触发Toast事件吗?

时间:2013-12-08 18:47:27

标签: c# microsoft-metro

我的目标是每15分钟运行一次任务,即使我的程序没有启动,如果我必须通过该程序“说出”某事,也会有Toast消息。

我使用系统事件制作了背景任务声明。入口点是“GS.MT”。

我创建了一个名为GS的命名空间,然后是一个类MT,什么是IBackgroundTask。

namespace GS
{
  public sealed class MT : IBackgroundTask
  {
    async public void Run(IBackgroundTaskInstance taskInstance)
    {
      BackgroundTaskDeferral deferral = taskInstance.GetDeferral();
      var toast = NotificationsExtensions.ToastContent.ToastContentFactory.CreateToastText01();
      toast.TextBodyWrap.Text = "FUT!";
      Windows.UI.Notifications.ToastNotificationManager.CreateToastNotifier().Show(toast.CreateNotification());
      deferral.Complete();
    }
  }
}

我使用以下代码注册:

  string triggernév = string.Format("{0} MT", "GS");
  BackgroundTask.EltávolításNévAlapján(triggernév); //remove if exists
  Windows.ApplicationModel.Background.MaintenanceTrigger trigger = new Windows.ApplicationModel.Background.MaintenanceTrigger(15, false);
  BackgroundTaskBuilder builder = new BackgroundTaskBuilder();
  builder.Name = triggernév;
  builder.TaskEntryPoint = "GS.MT";
  builder.SetTrigger(trigger);
  builder.Register();

我的代码运行,我的任务被注册,但它永远不会显示Toast消息。 如何从维护触发器的运行中显示Toast消息?

1 个答案:

答案 0 :(得分:0)

如果你在主项目中修改了后台任务,你还没有提到,因为它不起作用,这是最可能的原因。