首页 文章

如何查看基于JavaScript的UWP是否在“后台任务”上下文中运行?

提问于
浏览
1

UWP支持在后台运行的"background tasks",例如in response to some system eventto implement an App Service .

基于JavaScript的UWP应用程序在各自的应用程序清单文件( .appxmanifest )中声明background tasks .

检测我的代码是否作为后台任务运行的最佳实践是什么?

3 回答

  • -1

    我假设如果你问这个问题,你已经构建,注册并执行了后台任务,这只能通过使用ApplicationTrigger(https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.background.applicationtrigger)从UI线程完成 . 如果还没有,那么您的应用可能处于发布前(https://docs.microsoft.com/en-us/windows/uwp/launch-resume/handle-app-prelaunch) . 否则,您应该能够通过Windows.UI.WebUI.WebUIBackgroundTaskInstance.Progress在调用requestAsync()之前和之后以编程方式处理报告,或者通过在后台任务中报告来跟踪后台任务的进度 .

  • 0

    根据指导,首先需要创建后台任务类并将其注册为在应用程序不在前台时运行 .

    后台任务与应用程序分离,它们分别运行,但后台任务进度和完成可以通过应用程序代码进行监视 . 为了实现这一点,应用程序订阅了它已在系统中注册的后台任务中的事件 . 您可以使用BackgroundTaskProgressEventHandler

    var backgroundTaskProgressEventHandler = function(sender, args) {
     /* Your code */
    }
    
  • -1

    UWP "background tasks" are implemented as modified web workers.检测Web工作者上下文包含在其他一些SO问题中(12) . 一种解决方案如下:

    function inBackgroundTaskContext() {
        return typeof importScripts === 'function'
    }
    

    importScripts是一个可以在Web工作者上下文中调用的函数 . 应用程序在"normal" app环境中运行时未定义 .

相关问题