【问题标题】:How to use Time Trigger in background task in Windows 8 JS Metro App如何在 Windows 8 JS Metro App 的后台任务中使用时间触发器
【发布时间】:2014-04-14 12:39:06
【问题描述】:

我有一个要求,我必须在每 1 小时后调用后台服务以从服务器获取一些信息。我正在开发 JavaScript Metro 应用程序。我已经尝试了后台任务并使用了时间触发器,并且我已经安排它每 15 分钟触发一次。它第一次被调用,然后它永远不会被调用。我没有关闭后台任务,因为我希望它一直运行并在预定时间调用服务。 我使用了Microsoft Background task sample 作为参考。

请告诉我在后台调用服务的最佳方法应该是什么。 如何使用时间触发器以及为什么时间触发器在第一次后没有被调用?

如果有,请分享代码示例或演练。

谢谢

【问题讨论】:

    标签: c# javascript windows-8 background microsoft-metro


    【解决方案1】:

    您应该做的第一件事是按照文档中的说明正确关闭后台任务 - 如果您的任务表现不佳,平台可能会暂停并拒绝运行一段时间。您应该让平台根据您定义的触发器和条件来处理事件的触发,而不是试图弯曲系统。另外,请记住,后台任务存在 CPU 和数据使用配额,无法在后台任务中进行大量处理 - 如果超过配额,任务将暂停。还要确保后台任务正常工作并且不会引发错误。

    一般来说,我的建议是,不应该仅仅依靠后台任务来获取信息,因为不能保证他们能够按时完成,所以最好准备在前台应用程序中下载所需的数据,因为出色地。这显然取决于用例:如果在后台任务中获取的数据并不重要,但更像是锦上添花,那么就不用担心了。

    TimeTrigger 要求将应用程序添加到锁定屏幕(请参阅docs),但我猜您已经满足此要求,因为您已经设法让任务运行一次。

    有关调试后台任务,请查看事件查看器,请参阅detailed instructions。该页面还包含一些关于常见问题的提示。该文档中提到的事件查看器条目通常是找出 bg 任务执行问题的宝贵资源。我的猜测是,您会在那里看到与未正确关闭任务相关的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多