【问题标题】:UWP - app in background state and async methodUWP - 处于后台状态的应用程序和异步方法
【发布时间】:2016-09-05 19:09:49
【问题描述】:

我为通用 Windows 平台(适用于 Windows 10 桌面)创建了应用程序。我在应用程序中使用 DispatcherTimer。定时器运行异步方法。当应用程序在前台时,它可以工作。 但是应用程序是后台(我最小化一个窗口)异步方法不起作用。我该如何解决这个问题?

【问题讨论】:

    标签: c# asynchronous timer win-universal-app uwp


    【解决方案1】:

    当你的应用不在前台运行,需要执行任务时,众所周知,我们需要为应用实现background tasks

    但是,UWP 中的后台任务是轻量级的。由于内存限制,电池寿命问题,我不确定你需要什么可以在 UWP 的后台任务中完成。

    这并不意味着你不能在后台任务中使用DispatcherTimer,但后台任务被限制在30秒的挂钟使用时间,并且它可以被系统终止,例如当它抛出时-内存异常。所以,如果你想每分钟执行一次你的任务,那它就行不通了。

    @ibebbs 提到的TimerTrigger 的最小时间间隔为 15 分钟,所以我也不确定这是否可以在您的场景中使用。

    问题是你需要在后台任务中做什么,多久可以发表评论告诉我们,那么我们可以继续讨论这个问题。

    【讨论】:

    • 我需要显示通知。我需要它几分钟一次。
    • @FetFrumos,UWP 应用中有 4 种通知:本地、计划、定期和推送。可以参考Choose a notification delivery method。对于您的场景,您可以尝试定期通知,其重复间隔最多可以延迟 15 分钟。或者您可以尝试推送通知,每隔几分钟从您的应用服务器推送一次通知。
    • 谢谢。我做的很简单。我改变了我的应用程序的逻辑。
    【解决方案2】:

    您应该Create and register a background task that runs in a separate process 并使用TimerTrigger 在所需的时间间隔调用它。

    【讨论】:

      猜你喜欢
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 2015-12-14
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多