我正在开发一个WP7.5应用程序,我使用后台代理在后台更新磁贴(当应用程序未运行时)。
在代理的OnInvoke方法中,有没有办法知道主应用当前是否正在运行?
我想检测一下,如果应用程序正在运行,则不会更新磁贴,因为我已经在应用程序退出时对其进行了更新。
谢谢。
答案 0 :(得分:2)
您唯一的选择是编写使用隔离存储进行通信,因为它由代理和应用程序共享。
让主应用程序在启动时创建一个空白文件,并在关闭时删除它。然后,您的代理可以通过检查该文件的存在来确定应用程序是否正在运行。
答案 1 :(得分:2)
This MSDN page不仅列出了不支持的后台代理API,还强调了一些鼓励您使用的API。其中包括Mutex:
应该使用Mutex类来同步对资源的访问 在前台应用程序和后台之间共享 代理,例如隔离存储中的文件。
这应该是你想要的。在主应用程序中创建一个命名的Mutex,并尝试在后台代理中打开它。如果成功,那么您的主应用程序正在运行,否则不会。