我有一个简单的xaml形式,当调用LoadState时,它启用一个Dispatch Timer。当调度计时器触发时,它会检查服务是否有新项目。如果新项目符合某个条件,它会将消息添加到局部变量(最终绑定到列表视图),并使用ToastNotification框架创建新的Toast。然而,我注意到的一件事是ToastNotifications只在应用程序聚焦时才会起作用(当然,这会失败)。我认为这部分是有道理的,因为我的应用程序在未集中时会暂停。
但是,我知道我的DispatchTimer是在应用程序暂停时执行的,因为我看到Web请求启动了该服务。它必须意味着我发送通知的呼叫以某种方式推迟。我从概念上说,如果我的应用程序暂停,如何执行toast通知?我已经阅读了BackgroundTasks,但那些只响应系统事件。我真正想要的是我的应用程序无论其挂起状态如何都可以轮询消息,在可能的情况下更新UI,并更新通知是否应用了应用程序。
答案 0 :(得分:1)
不幸的是,实现场景的唯一可靠方法是使用BackgroundTask,您可以每30分钟运行一次。 DispatcherTimer需要UI线程,该线程仅在您的应用具有焦点时才会运行。如果您看到Web请求消失,可能是由于其他一些异常现象,但是当您的应用程序暂停时,无法保证其他用户代码无法运行 - 包括弹出祝酒词。
答案 1 :(得分:0)
听起来你可能正在寻找更像推送通知的东西。这些对你有用吗?您可以使用它们来显示Toast通知,更新您的实时图块等。
Notification Platform Development on Windows
Mobile Push Notifications to Any Client with Azure Notification Hubs