2017-02-24 53 views
1

我在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. 我需要觸發後臺任務,每當用戶複製的東西給他的剪貼板?

  2. 如何在後臺任務運行時執行某些操作?

回答

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 the Background Task class in Create and register an out-of-process background task