【问题标题】:Can I periodically run a background task in WP8 without my app running?我可以在不运行我的应用程序的情况下定期在 WP8 中运行后台任务吗?
【发布时间】:2012-12-25 08:34:10
【问题描述】:

我想定期更新我的 WP8 应用程序的磁贴 - 不超过一两个小时。但是,我不希望我的应用必须运行才能执行此后台任务(将查询 WAMS 并根据返回的结果更新 WP8 应用的磁贴)。

这可能吗,或者做后台任务(我找到了这个关于如何创建的教程: http://thesociablegeek.com/windows-8/livetiles/modifying-live-tiles-in-a-background-process/) 要求托管它们的应用程序正在运行?

IOW,我基本上需要的是类似于 Windows 服务,它由操作系统托管,而不是/我的特定应用程序。

【问题讨论】:

  • 计划任务在 WP8 上不可用吗?

标签: c# scheduled-tasks windows-phone-8 background-process azure-mobile-services


【解决方案1】:

我建议您将磁贴更新逻辑编码为periodic task,然后将其配置为在后台运行。这样,您就不必维护您的应用在后台运行。

希望这会有所帮助。

【讨论】:

  • 这看起来很有希望,但它说,“计划任务和后台代理允许应用程序在后台执行代码,即使应用程序没有在前台运行”这是否意味着应用程序已经在当前会话期间由用户启动(因为手机已打开)? IOW,是否必须暂停应用程序才能正常工作,或者如果用户没有启动我的应用程序,或者它已经被墓碑删除/86d,这些定期任务甚至会运行吗?而且,在我的情况下同样重要,因为这些任务存在限制:他们可以访问 WAMS - 在那里查询数据库吗?
  • Clay,Dhawalk 提到的是正确的方法,并回答您的问题:周期任务是作为与 WP8 应用程序的单独项目创建的,因此任务逻辑的运行实际上与主应用程序。 WAMS可以从周期性任务中访问,不是问题。唉,这种方法的一个限制是,一旦您声明了周期性任务的功能,它将在您的设置 --> 应用程序 --> 后台任务模块下显示为“后台任务”。如果用户关闭您的应用,您的后台代理中的代码将永远不会运行。
  • “如果用户关闭您的应用”是指“如果用户卸载我的应用”吗?如果是这样,那很好 - 卸载应用程序后,后台任务将比毫无价值更糟糕。
【解决方案2】:

以下是如何在 Windows Phone 7 或 8 中使用所谓的后台代理的指南:
Background agents for Windows Phone
基本上你可以安排简单的任务每 30 分钟执行一次,即使主应用程序没有运行。这些任务有系统要求,例如 WP7 的内存上限限制为 6 MB,WP8 任务的内存上限为 11 MB,每个任务的运行时间为 25 秒,以及可用的 API 有限。

【讨论】:

  • 如何部署到 Windows Phone 商店 - 您能否将这些单独但在臀部连接的(连体双胞胎?)应用程序捆绑在一起 - “主”应用程序和后台任务?如果是这样,怎么做?如果没有,您如何确保用户也下载了后台任务(后台任务“app”/service 肯定不会独立部署到 WP8 商店)。
  • 后台任务是实际应用程序包的一部分,它不是双胞胎或第二个应用程序。全部下载到一个包中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 2023-03-15
相关资源
最近更新 更多