【问题标题】:UWP: How to perform action in a BackgroundTaskUWP:如何在 BackgroundTask 中执行操作
【发布时间】:2017-07-15 11:09:15
【问题描述】:

我正在 JavasScipt 中构建 UWP 应用程序。


我正在关注的文档:

Create and register an out-of-process background task
Support your app with background tasks

这里是 BackgroundTask 初始化:

(function () {
    "use strict"

    // Initialization
    var Background = Windows.ApplicationModel.Background;

    // Register
    var taskBuilder = new Background.BackgroundTaskBuilder();
    taskBuilder.name = "MyBackgroundTask";

    // init trigger
    var appTrigger = new Background.ApplicationTrigger();
    taskBuilder.taskEntryPoint = "clipboardListener.MyBackgroundTask";
    taskBuilder.setTrigger(appTrigger);

    // Check if background task already registered
    var taskRegistered = false;
    var iter = Background.BackgroundTaskRegistration.allTasks.first();
    var hascur=iter.hasCurrent;
    while (hascur)
    {
        var current = iter.current.value;
        if (current.name == "MyBackgroundTask")
        {
            taskRegistered = true;
            break;
        }
        iter.moveNext();
    }

    if (!taskRegistered)
    {
        var task = taskBuilder.register();
    }
})();


这是我设置任务的方式:

function runBackgroundTask() {
    appTrigger.requestAsync().then(function (result) {
        closeRun();
    }, function (err) {
        console.log(err);
    });
};


如您所见,我在上面的代码中设置了appTrigger 变量来设置任务的触发器。

  1. 当用户将某些内容复制到剪贴板时,我需要什么来触发后台任务?

  2. 如何在后台任务运行时执行某些操作?

【问题讨论】:

  • 嘿 johnhue,你能帮我如何使用仅使用 js 的计时器创建后台任务吗,谢谢

标签: javascript jquery winapi uwp


【解决方案1】:

1.每当用户将内容复制到剪贴板时,我需要什么来触发后台任务?

不支持在后台任务中侦听剪贴板更改。我们可以在Windows.ApplicationModel.Background Namespace 下找到所有支持的触发器,UWP 中没有这样的触发器。

2.如何在后台任务运行时执行某些操作?

这将取决于您如何实现后台任务。通常,我们会创建一个Windows 运行时组件,并在该组件中编写实现IBackgroundTask 接口的类。

以使用 C# Windows 运行时组件为例,一个基本的后台任务类如下所示:

namespace Tasks
{
    public sealed class ExampleBackgroundTask : IBackgroundTask
    {
        public void Run(IBackgroundTaskInstance taskInstance)
        {

        }        
    }
}

Run 方法是我们用来执行我们想要的操作的地方。该方法是一个必需的入口点,将在触发指定事件时调用。

更多信息,请参阅Create and register an out-of-process background task中的Create the Background Task class

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 2021-04-22
    相关资源
    最近更新 更多