UWP:如何在BackgroundTask中执行操作
问题描述:
我在JavasScipt中构建UWP应用程序。
本细则我下面:UWP:如何在BackgroundTask中执行操作
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.什么我需要触发后台任务,每当用户复制的东西给他的剪贴板?
不支持在后台任务中监听剪贴板更改。我们可以在Windows.ApplicationModel.Background Namespace下找到所有支持的触发器,并且UWP中没有这种触发器。
2.如何在后台任务运行时执行某些操作?
这将取决于您如何实现您的后台任务。通常,我们将创建一个Windows运行时组件,并在该组件中编写实现IBackgroundTask接口的类。
使用C#Windows运行时组件,例如,一个基本的后台任务类想以下几点:
namespace Tasks
{
public sealed class ExampleBackgroundTask : IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
}
}
}
而且Run方法是我们用来执行我们想要的。该方法是一个必需的入口点,当指定的事件被触发时将被调用。
欲了解更多信息,请参阅Create the Background Task class in Create and register an out-of-process background task。