问题标签 [background-agents]

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 投票
0 回答
109 浏览

windows-phone-8 - 是否可以动态加载 BackGroundAgent 并使其工作?

我有一个 Window phone 8 应用程序,我需要有一个用于此应用程序的 BackGroundAgent。我知道我们可以简单地在主应用程序中添加后台代理项目的引用,它工作正常。但我想通过 Assembly.Load() 在主应用程序中动态加载它并使其工作。

WMAppManifest.xml

0 投票
1 回答
491 浏览

windows-phone-8 - Windows Phone 定期任务限制

Windows Phone 8 的定期任务限制

我正在尝试根据用户设置的间隔计时器制作用于在后台检查 web 服务值的应用程序。我知道周期性任务的限制是最少 30 分钟将运行后台代理。这给我的应用程序带来了很大的问题。请问有另一种方法可以让我检查间隔计时器中的网络服务值而不是使用定期任务吗?

0 投票
1 回答
752 浏览

c# - Invalid cross-thread access raised in background agent

I am building an RSS Reader and I want to add a periodic task that will check for new feed items. If it finds any new items, it will update the Live Tile of the app accordingly.

The problem that I encounter is that I am using the DownloadStringAsync() method to download the feeds and check if they contain new items. So, sometimes the downloading process may take longer than 20 seconds (the time that a periodic task is given in order to complete its actions).

All I want is to ensure that the NotifyComplete() method will be called before the agent gets terminated by the OS, after 20 seconds of action. For this reason, I want to register a dispatcher timer with an interval of 15 seconds, that will call the NotifyComplete() method in its tick event.

However, I tried to declare and use the dispatcher timer, and an invalid cross-thread access error was raised. My Periodic Task code includes the following:

The question is, why this is happening and how I can resolve the issue. Thank you in advance!

0 投票
1 回答
239 浏览

c# - 计划任务代理 wp7 soap 客户端不工作

我有这个:

OnInvoke 事件发生。但是没有执行 UserTrackAsync 的调用。

0 投票
1 回答
922 浏览

windows-phone-8 - 在 Schedule/Background Agent 中发送 httpwebrequest

我正在尝试http web requestbackground agent. 代码如下。永远不会被触发,我的json_Callback请求没有到达服务器。我已经完成了所有的异常处理,并且没有一个被触发。

如何在后台代理发送网络请求?

0 投票
1 回答
493 浏览

windows-phone-8 - 如何从调度代理检查前台应用程序是否正在运行

是否可以检查前台应用程序是否正在从计划任务运行?就我而言,它复制了应用程序的一个功能——因此我可以跳过代理中的该部分以保留资源。

谢谢

0 投票
2 回答
200 浏览

c# - WP 每 5 分钟运行一次周期性任务

我制作了一个 WP 应用程序,用于检查激战二的游戏内事件。向上看,MSDN 声明该任务将每 30 分钟运行一次。问题是,在 30 分钟时,一个事件可能已经结束,是否有办法让它运行 5 分钟,或者替代方案?

所有任务需要做的是,它从网页下载一些文本并在事件到期时显示通知。

0 投票
0 回答
503 浏览

c# - 如何让后台代理检查新提要

我想让我的 Windows Phone 应用程序中的后台代理在后台检查新提要,我使用 webclient 下载它们并将它们显示在列表框中我使用 webbrowser 控件将选定的提要显示到它来自的页面我从 syndicationitem 获得的 url,现在我想保存让我们说标题或发布日期到隔离存储,并且后台代理每 30 分钟检查一次。对于提要并检查是否有一些新提要可用,比较最后一个提要标题或已保存的最后发布日期和页面上的最新消息,然后如果有较新的提要,它应该发送一个带有提要标题的 toast 通知和打开我的应用程序。

我之前没有做任何事情来保存提要,我不知道该怎么做,我不知道如何使用后台代理和做我上面写的。我使用 Microsoft 的 RSS 阅读器示例作为我的应用程序逻辑的背景。下载,在此处显示与示例类似的所有内容 - http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh487167(v=vs.105).aspx

这是一些代码:

我用它来下载提要

我用来在我的列表框中显示它们,并且还有一些动态磁贴的逻辑:

如果在列表框中选择了一个项目,我会使用它:

其余的只是通过 webbrowser 控件在另一个页面上显示这个传递的 url。我怎样才能让它像我想在上面描述的那样现在真正起作用?!

0 投票
1 回答
106 浏览

windows-phone - Windows Phone 8:为 MediaHistoryItem ImageSource 使用远程 uri

我在 Windows Phone 8 Media Hub 应用程序中看到的用于更新历史项目的每个示例都显示使用本地图像/uri 来显示项目的背景。

但是,我正在流式传输文件,并且我有一个用于该歌曲封面的远程 URI,但我似乎无法将此 uri 用于历史项目。

我试图将图像下载到本地存储,但这似乎并不总是有效,并且使后台代理崩溃。

更不用说我必须异步执行此操作,并且需要支持从后台代理下载它,以防用户在轨道更改时没有运行应用程序......

我是否正在尝试做一些不受支持的事情?

0 投票
1 回答
1035 浏览

windows-phone-8 - WriteableBitmap 或 PNG 写入器内存泄漏?

我正在构建一个小型 Windows Phone 8 应用程序(基督教东正教日历),它有一个应该更新动态磁贴的后台代理。该应用程序将需要访问手机中的联系人,因此我选择退出互联网访问,因此后端磁贴生成至少现在是没有问题的。我个人不会相信可以访问我的联系人和互联网的应用程序。

最近我的预定代理(生成三个 PNG)开始对我进行 OutOfMemoryException-ing。始终如一。我使用 DeviceStatus 来查询和调试它的行为。

很难将此称为内存泄漏,因为如果我调用 GC.Collect 在所有三个 tile 代之间它不会抛出 OutOfMemoryException。如果这是一个真正的内存泄漏,一些(大的和/或许多)对象将仍然被其他活动/根对象引用,并且没有任何 GC.Collect 会有所帮助。就我而言,GC.Collect会有所帮助。我可以继续使用 GC.Collect,但我觉得这样做很脏。

当我正在开发免费和开源的应用程序时,您可以在http://orthodoxcalendar.codeplex.com上详细查看项目当前开发状态​​的所有代码

平铺生成包括获取背景并在该背景上叠加另外两个图像。基本上对于我生成的三个PNG中的每一个

如果您要查看项目,代码与上面的代码并不完全相同,因为我已经将几乎所有依赖项都包装在适配器和提取的接口中。跨越许多程序集。上面的代码是简化版本,我认为是相关的代码行。

上面代码的一些解释:

  • 所有这些代码都在 Dispatcher.BeginInvoke 内的后台代理中运行,因为除了 UI 线程之外,您似乎无法在任何其他线程上操作 WritableBitmap
  • PNG 数据作为 resx 存储在另一个程序集中。我知道这会使程序集变胖,但我需要它来跨平台重用它,因为程序集是 PCL
  • 直接使用字节数组创建 WriteableBitmap 似乎以一种神秘的方式失败,所以我将它包装在 MemoryStream 中,并且以某种方式,它可以工作
  • PNG writer 取自ToolStack
  • 预生成图像是不可行的,因为有多个版本的“第一叠加”、“第二叠加”以及主要是“某些文本”。这至少意味着成千上万的图像。

问题的核心:我是否在做一些我不知道的非常错误的事情?我唯一想到的是 JPEG 的生成速度更快,内存消耗更少,但它们没有我想要的透明度。这实际上可以称为内存泄漏吗?


后期编辑:似乎经过更多调试后,它的行为从上面的行为改变为真正的内存泄漏。我从 PNG 生成切换到 JPEG 生成,现在内存较低。输入图像仍然是 PNG,但在另一端会吐出 JPEG。内存占用比之前的阈值低了几兆字节。


第二次编辑:我将逻辑放在按钮上的 10.000 重复循环中,似乎没有太多的内存消耗。我开始认为实际上并没有内存泄漏,而只是在生成过程中消耗了更高的内存,这足以让脆弱的代理崩溃。