在Windows Phone 8.1中发送/接收全局通知

时间:2014-12-27 19:54:42

标签: c# notifications windows-phone windows-phone-8.1

有一段时间我一直试图想办法实现一个简单的任务:我的应用程序中有两个后台任务,我想让一个人通知另一个有关某些更改(只需要单向通信),但对于我的生活,我无法弄清楚任何有效的方法。这些是我从互联网上找到的方法,但它们都存在问题:

  1. 我以为我可以在应用的本地文件夹中创建一个简单的文本文件并将通知放在那里。监听过程可以某种方式订阅该文件,并通知其内容的任何变化。这可以通过 FileSystemWatcher 类在以前实现,但是从Windows 8开始就已经删除了。
  2. 然后我找到了另一个用于实现上述方法的API,即 QueryOptions 类。但它转变为虽然它在商店应用程序中可用,但它在Windows Phone上不受支持。
  3. 我考虑过使用推送通知,但它们都与网络服务相关联。到目前为止,我无法找出任何方法来使用它们在没有Web服务器的情况下在本地发送和接收通知。
  4. 有什么方法可以这样做吗?这似乎是一项非常简单的任务,但事实证明这是不可能完成的。 Windows Phone上是否还有其他API允许在更改文件内容时通知进程?或者有什么方法可以解决推送通知并实现这一目标吗?我还读过名为管道和套接字的地方经常被用来在其他平台上实现这种功能,有什么方法可以在这里应用吗?

    没有每半秒钟左右轮询文本文件的更改(这将是非常低效并引入滞后,这是我的应用程序无法容忍的),我无法找出任何其他方法来实现此任务

    提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您想要在同一个应用程序中的两个或多个进程中使用通用IPC机制,您可以查看包含Win32 IPC原语的this sample

当文件发生变化时,无法“唤醒”进程(或启动后台任务)。所以这只有在进程同时运行时才有效(如果它们没有同时运行,你可以使用其他类型的信令机制,例如磁盘上的占位符文件)。

也无法在两个不同的应用中发出信号;你必须通过网络往返(例如,一个应用程序ping服务器,将其中继到另一个应用程序)。