我有一个简单的xaml表单,当调用LoadState时,它将启用一个Dispatch Timer。当调度计时器触发时,它将检查服务中是否有新项目。如果新项目符合特定条件,它将消息添加到局部变量(最终绑定到列表视图),然后我们使用ToastNotification框架创建新的Toast。但是,我注意到的一件事是ToastNotifications似乎仅在应用程序聚焦时才起作用(当然,这很关键)。我认为这在一定程度上是有道理的,因为我的应用程序在未重点关注时已被暂停。
但是,我知道DispatchTimer是在应用程序暂停时执行的,因为我看到Web请求触发了该服务。这一定意味着我发送通知的电话以某种方式被推迟。从概念上我想,如果我的应用程序被暂停,我如何获得Toast通知来执行?我已经阅读了BackgroundTasks,但是这些仅响应系统事件。我真正想要的是我的应用程序可以轮询消息,无论其处于暂停状态,都可以在可能的情况下更新UI,并更新通知(无论应用程序是否被暂停)。
不幸的是,实现方案的唯一可靠方法是使用BackgroundTask,它可以每30分钟运行一次。DispatcherTimer需要UI线程,该线程仅在您的应用具有焦点时才运行。如果您发现网络请求不正常,则可能是由于其他一些异常所致,但是实际上,当您的应用被暂停时,不能保证进一步的用户代码得以运行-包括弹出一个祝酒词。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句