检查应用程序是否正在从后台任务运行

时间:2016-07-24 18:33:03

标签: win-universal-app windows-10-universal

我正在创建一个带后台任务的UWP应用程序。我不想在真正的应用程序运行或暂停时运行后台。有没有办法实现这一目标?我看过SystemConditionType,但没有什么能适合我正在寻找的东西。

1 个答案:

答案 0 :(得分:6)

由于后台任务(特殊任务除外)在一个单独的进程中运行,因此没有一种优雅的方法可以检查应用程序是否正在运行,因为应用程序和后台任务之间没有共享内存。我成功实施了两种方式:

应用服务

应用程序中的

Create an app service,在后台任务中,尝试连接到该服务。如果服务可用,则表示该应用正在运行。当您需要在任务和应用程序之间进行通信时,这是最受欢迎的。

文件锁定

这是在简单场景中最喜欢的一个,您只需要知道应用程序是否正在运行。

  1. 每次应用程序启动时,在本地app文件夹中创建/打开一个文件,打开它进行写入,并在应用程序运行时保持打开状态。在Suspending事件上关闭它并在Resuming事件上重新打开它。
  2. 在后台任务中,尝试打开文件进行写入,如果尝试成功,则表示应用程序未运行。
  3. 立即在后台任务中关闭文件。
  4. 注意: 在周年纪念更新中可用的新API中,后台任务可以在same process as the app中执行。使用新模型,您将不再遇到此问题。