问题标签 [background-agent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
172 浏览

windows-phone-8 - Windows Phone 音乐播放器应用程序播放手机库中的歌曲

我最近在学习windows phone 8开发。并开始开发从手机库播放的音乐播放器。我使用 MediaLibrary API 来获取所有歌曲、专辑和它现在工作正常。

现在的问题是我已将 MediaPlayer_MediaStateChanged 和 MediaPlayer_ActiveSongChanged 分配给 mediaplayer 对象。它在我更改 longListSelector 中显示的歌曲时触发。当我按下音量按钮时得到的下一个或上一个按钮时,该事件不会触发。

希望您了解问题所在。我尝试使用 backgroundPlayerAgent 并知道它不支持 MediaLibrary。我也看到了这个问题。但我看到很少有应用程序能够监听这些上一个/下一个按钮事件。如果你知道我错过了什么请帮忙??是否有任何其他第三方库可用?我在网上搜索了很多,但我没有得到任何有用的信息。所以发布这个问题,以为我可能会得到一些信息

0 投票
3 回答
384 浏览

c# - 当代理调用的其余代码的处理时间很快时,我的后台代理中的反向地理编码导致我的动态磁贴不更新

我的 Windows Phone 8 天气应用程序的后台代理出现问题。

每当运行后台代理时,都会在满足某些条件(与我遇到的问题无关)时发出新的 http 天气请求。当这些条件不满足时,将使用缓存的天气数据。

此外,如果您将活动磁贴的位置设置为“当前位置”,后台代理将使用反向地理编码来确定您当前所在位置的区域名称。无论是使用新数据还是缓存数据,即每次运行我的应用程序的后台代理时,都会执行此操作。

我遇到的问题是,每当使用缓存数据时,动态磁贴都不会更新。但它似乎不会导致异常发生,因为应用程序的后台代理永远不会被阻止,即使动态磁贴无法更新的次数超过两次。

这是从调度代理调用的后台代理的视图模型的“公共异步任务 getWeatherForTileLocation()”方法的相关摘录:

预定代理摘录:

getWeatherForTileLocation() 摘录:

setCoordinates 方法,以及从中调用的反向地理编码相关方法:

我已经调试了很多次代码,并且没有发现任何问题。调用时的http请求很好,缓存数据提取很好,反向地理编码总是返回一个位置(最终)。

但我确实注意到,当我使用缓存数据时,当前位置的名称是在计划任务创建更新的活动磁贴之后但在计划任务完成之前检索的。

也就是说,在调度代理中运行此代码后,将检索位置的名称:

但之前:

显然由于内存限制,此时我无法创建更新的视觉元素。

相比之下,当我不使用缓存数据时,反向地理编码查询总是设法在 http 请求代码完成之前返回一个位置。

因此,当视图模型的 getWeatherForTileLocation() 方法在调度代理中使用“等待”时,我决定确保该方法在检索到当前位置的名称之前不会返回任何内容。我在方法的页脚中添加了一个简单的 while 循环,该循环只会在 _currentLocation 字段收到一个值后终止,即反向地理编码完成:

当我调试时,我认为这个循环运行了大约 300 万次迭代(无论如何是一个非常大的数字)。但是这个 hack(我不知道如何描述它)在我调试时似乎有效。也就是说,当我的构建目标是我的 Lumia 1020 时,当我从它创建一个新鲜的动态磁贴时,它调用:

以确保我不必等待第一个计划任务。当我调试第一个计划任务时,一切正常:1)发出反向地理编码请求,2)正确提取缓存数据,3)hacky while循环不断迭代,4)当反向地理编码返回位置名称时停止,5 ) 磁贴成功更新。

但使用缓存数据的后续后台代理调用似乎不会更新磁贴。只有在使用非缓存数据时,动态磁贴才会更新。此时我应该提醒您,反向地理编码查询总是设法在 http 请求代码完成之前返回一个位置,即 hacky 循环仅迭代一次。

关于我需要做什么以确保在使用缓存数据时正确更新实时磁贴的任何想法(阅读:当数据处理时,在进行反向地理编码查询后,比 http 请求快得多)?另外,有没有比我的 while 循环更优雅的方法来阻止 getWeatherForTileLocation() 退出?我确定有!

抱歉,这篇文章很长,但希望尽可能彻底!

在过去的 72 小时里,这一直让我彻夜难眠(字面意思),因此非常感谢您的帮助和指导。

非常感谢。

巴迪

0 投票
1 回答
121 浏览

c# - 从 WP8 后台代理引用 WCF 服务

我偶然发现了从 Windows Phone 后台代理引用 WCF 服务的问题。

我的解决方案中有两个项目

  1. Windows 手机应用程序
  2. 后台代理

我在我的 WP 应用程序中引用了两个服务。我希望后台代理定期从服务中调用方法。

但是,当我向代理添加服务引用时,我收到此错误

有效负载包含两个或多个具有相同目标路径“ServiceReferences.ClientConfig”的文件。源文件: ...\Client\WPClient\WPClient\ServiceReferences.ClientConfig ...\Client\WPClient\WPTaskAgent\ServiceReferences.ClientConfig

有没有办法摆脱这个错误或解决它?

谢谢

0 投票
0 回答
1087 浏览

ipc - Windows 通用应用程序和桌面应用程序之间的通信 (Win 10)

有什么方法可以实现 Windows 通用应用程序和在同一台计算机上运行的标准桌面应用程序之间的通信?我读到 UA 不支持 IPC。相反,他们使用那些所谓的后台代理。但是是否可以使用这些后台代理不与 UA 通信,而是与桌面应用程序通信,或者这完全被抑制了?

原因是,我已经有一个桌面应用程序,我想为它添加 Cortana 支持,而不需要太多努力。所以我想避免将桌面应用程序转换为通用应用程序。Cortana 目前仅在通用应用程序中可用。