2015-08-20 85 views
2

我有Win 10通用應用程序,它基於應用程序中的各種事件顯示吐司通知。Windows 10通用XAML吐司通知

我的問題是,只有當應用程序處於活動狀態時纔會顯示敬酒通知(它不會最小化任務欄)。

我需要應用程序來顯示通知,當我使用任何其他應用程序。 我的下面設置: enter image description here

吐司調用代碼:

private void DisplayNotification() 
     { 
      string toastXmlString = "<toast>" 
           + "<visual version='1'>" 
           + "<binding template='ToastText04'>" 
           + "<text id='1'>Header</text>" 
           + "<text id='2'>Line 1</text>" 
           + "<text id='3'>Line 2</text>" 
           + "</binding>" 
           + "</visual>" 
           + "</toast>"; 

      Windows.Data.Xml.Dom.XmlDocument toastDOM = new Windows.Data.Xml.Dom.XmlDocument(); 
      toastDOM.LoadXml(toastXmlString); 

      // Create a toast, then create a ToastNotifier object to show 
      // the toast 
      ToastNotification toast = new ToastNotification(toastDOM); 

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

任何人都知道這是爲什麼?

+0

如何發送您的Toast通知?從Azure,後臺服務等 –

+0

從Windows通用應用程序,應用程序刷新數據在設定的時間間隔,並根據我希望它顯示一些敬酒的結果。 –

+0

您在背景中設置的間隔時間有多長? –

回答

3

您需要爲此創建一個新的BackgroundTask。有很多可用的解決方案,但這裏有一個簡短列表:

  1. 將新的Windows運行時組件項目添加到解決方案。
  2. 在聲明中的清單中添加一個新的後臺任務並選擇推送通知和/或計時器。
  3. 設置的入口點是完全限定域名(namespace.classname)
  4. 在應用程序啓動

    如果(BackgroundTaskRegistration.AllTask​​s.Any(任務=> task.Value.Name註冊你的任務== TaskNameConst))return;

    BackgroundTaskBuilder builder = new BackgroundTaskBuilder(); builder.Name = TaskNameConst; builder.TaskEntryPoint = TaskEntryPointConst; builder.SetTrigger(new TimeTrigger(15,false)); builder.Register();

+0

正如您從上面的功能圖像中看到的,我沒有看到任何Push/Timer選項。該應用程序是一個通用Windows之一。 –

+1

您顯示的功能列表是針對應用程序本身的(顯示在清單的功能選項卡中)。我的指令聲明使用聲明選項卡來添加新的後臺任務。當你添加它時,你會看到任務本身的功能。 –