【问题标题】:Background task and running app detection后台任务和运行应用检测
【发布时间】:2013-08-06 11:51:11
【问题描述】:

我的应用中有后台任务,每 15 分钟运行一次(在锁定屏幕上时)。 执行后台任务时是否可以检测我的应用程序是否正在运行?在这种情况下,我想跳过后台任务执行,以避免并发问题。

【问题讨论】:

    标签: javascript windows-runtime windows-store-apps winjs


    【解决方案1】:

    您无法检测您的应用何时从后台任务运行,但您可以通过 BackgroundTaskRegistration Progress 和 Completed 事件检测后台任务何时从您的应用运行。

    此示例涵盖了您应该需要的所有内容。 http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9

    【讨论】:

    • 该链接告诉我:“该项目尚未发布。如果您是该项目的所有者,请使用相应的帐户登录。”
    • 微软似乎删除了旧样本,我已经用 Windows 8.1 样本更新了链接。
    【解决方案2】:

    因为应用程序和后台任务都可以访问应用程序数据,所以让应用程序在激活时在 ApplicationData.localSettings 中存储一个标志,在暂停时清除标志,并在恢复时重置标志。然后,后台任务可以在启动时检查该标志并从那里做出决定。

    【讨论】:

    • 是的,听起来像是唯一的解决方案,但如果应用程序意外终止怎么办?
    【解决方案3】:

    您是否考虑过共享互斥锁?这可以避免(例如)后台任务失败并且没有清除其活动标志或 localSettings 损坏的可怕情况。

    【讨论】:

      猜你喜欢
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      • 2020-10-24
      • 1970-01-01
      相关资源
      最近更新 更多