如何检测主应用程序是否从后台代理程序运行

时间:2011-10-19 05:53:38

标签: windows-phone-7 background-agents

我正在开发一个WP7.5应用程序,我使用后台代理在后台更新磁贴(当应用程序未运行时)。

在代理的OnInvoke方法中,有没有办法知道主应用当前是否正在运行?

我想检测一下,如果应用程序正在运行,则不会更新磁贴,因为我已经在应用程序退出时对其进行了更新。

谢谢。

2 个答案:

答案 0 :(得分:2)

您唯一的选择是编写使用隔离存储进行通信,因为它由代理和应用程序共享。

让主应用程序在启动时创建一个空白文件,并在关闭时删除它。然后,您的代理可以通过检查该文件的存在来确定应用程序是否正在运行。

答案 1 :(得分:2)

This MSDN page不仅列出了不支持的后台代理API,还强调了一些鼓励您使用的API。其中包括Mutex

  

应该使用Mutex类来同步对资源的访问   在前台应用程序和后台之间共享   代理,例如隔离存储中的文件。

这应该是你想要的。在主应用程序中创建一个命名的Mutex,并尝试在后台代理中打开它。如果成功,那么您的主应用程序正在运行,否则不会。