我有一个要求,我必须在每个让我们说1小时后从服务器获取一些信息后在后台调用服务。我正在开发JavaScript Metro Application。我已经尝试了后台任务并使用了Time Trigger,我已经安排它每15分钟触发一次。它第一次被调用,然后它永远不会被调用。我没有关闭后台任务,因为我希望它一直运行并在预定时间调用服务。 我使用Microsoft Background task sample作为参考。
请告诉我在后台调用服务的最佳方法是什么。 如何使用时间触发器和为什么时间触发器在第一次调用后没有被调用?
如果有的话,请分享代码示例或演练。
由于
答案 0 :(得分:1)
您应该做的第一件事是按照文档中的说明正确关闭后台任务 - 如果您的任务表现不佳,平台可能会暂停并拒绝运行它们一段时间。您应该让平台根据您定义的触发器和条件处理事件触发,而不是尝试弯曲系统。此外,请记住,存在后台任务的CPU和数据使用配额,无法在后台任务中执行大量处理 - 如果超出配额,任务将被暂停。还要确保后台任务有效并且不会抛出错误。
一般来说,我的建议是,不应该仅仅依靠后台任务来获取信息,因为它不能保证他们能够按时完成,所以最好准备在前台应用程序中下载所需的数据。好。这显然取决于用例:如果在后台任务中获取的数据不是很关键,但更像是很好的,那么就不用担心了。
TimeTrigger需要将应用程序添加到锁定屏幕(请参阅docs),但我猜您已经满足此要求,因为您已设法让任务运行一次。
要调试后台任务,请查看事件查看器,请参阅detailed instructions。该页面还包含一些常见问题的提示。该文档中提到的事件查看器条目通常是用于确定bg任务执行问题的宝贵资源。我的猜测是,你会看到与未正确关闭任务相关的错误。