2017-03-05 22 views
0

我想开发一个运行后台任务的应用程序(读取机器的rfid传感器)我想创建另一个任务报告机器状态它将检查上次传感器被读取,当其超过5分钟时将提示用户选择等待的原因。它显示我想要任务继续检查,因为如果机器在用户从内容对话框中选择某些内容之前开始工作,我想隐藏内容对话框并继续工作。当然,我并不要求提供完整的代码:)如果您可以给出一个可显示内容对话框并继续运行的后台任务的简短示例,那将是非常棒的。我发现的最近的例子是这个,但我不明白和实现我的代码Show a modal UI in the middle of background operation and continue如何从后台任务显示内容对话框在uwp应用

非常感谢。

await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, 
      () => 
       { 
        if (DialogisOpen == false) 
        { 
         //its been 3 min since machine is not working so we  are showing user dialog to ask for a reason 
         mp = new MainPage(); 
         mp.TestUi(); 
         DialogisOpen = true; 

        } 

       }); 
+0

你不能......但你可以通过敬酒通知获得用户关注。 –

+0

谢谢你的回答。但你确定吗?这个链接我分享这个人似乎他做了 – Cozdemir

+1

这是他正在采取的WPF,你做UWP。 UWP中的后台任务无法显示任何UI,因为前台应用程序未运行。例如,只与吐司通知一起工作。另一方面,WPF没有将后台任务系统作为UWP。你确定你正在使用后台任务吗? –

回答

1

一个BackgroundTask没有任何UI支持,因此无法显示任何UI(包括ContentDialog),因为它没有到UI线程的任何访问,但也有一些事情可以做,而不是。

  • 有BG任务显示ToastNotification(里面确实有UI)
  • 不要使用后台任务,有一个完整的应用程序运行最小化,并且单独的进程中保持这种运行。
  • 在您的示例工作的WPF中执行此操作。 (您没有说过是否有原因您不能这样做。)
  • 您的BGTask是否以各种方式发送消息到(或启动)可以显示提示的计算机上的另一个进程。
相关问题