后台任务和运行应用检测
Posted
技术标签:
【中文标题】后台任务和运行应用检测【英文标题】:Background task and running app detection 【发布时间】:2013-08-06 11:51:11 【问题描述】:我的应用中有后台任务,每 15 分钟运行一次(在锁定屏幕上时)。 执行后台任务时是否可以检测我的应用程序是否正在运行?在这种情况下,我想跳过后台任务执行,以避免并发问题。
【问题讨论】:
【参考方案1】:您无法检测您的应用何时从后台任务运行,但您可以通过 BackgroundTaskRegistration Progress 和 Completed 事件检测后台任务何时从您的应用运行。
此示例涵盖了您应该需要的所有内容。 http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9
【讨论】:
该链接告诉我:“该项目尚未发布。如果您是该项目的所有者,请使用相应的帐户登录。” 微软似乎删除了旧样本,我已经用 Windows 8.1 样本更新了链接。【参考方案2】:因为应用程序和后台任务都可以访问应用程序数据,所以让应用程序在激活时在 ApplicationData.localSettings 中存储一个标志,在暂停时清除标志,并在恢复时重置标志。然后,后台任务可以在启动时检查该标志并从那里做出决定。
【讨论】:
是的,听起来像是唯一的解决方案,但如果应用程序意外终止怎么办?【参考方案3】:您是否考虑过共享互斥锁?这可以避免(例如)后台任务失败并且没有清除其活动标志或 localSettings 损坏的可怕情况。
【讨论】:
以上是关于后台任务和运行应用检测的主要内容,如果未能解决你的问题,请参考以下文章