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