2016-12-02 78 views
3

tl; dr:如何註冊後臺任務而無需運行應用程序?在不運行應用程序的情況下注冊後臺任務

長版

我想註冊一個後臺任務在使用SystemTriggerType.UserPresent運行每次用戶登錄。

我找到了關於註冊任務的信息,但那是必須執行的代碼。如果僅在該應用程序運行之後執行任務,那就沒問題了。但是,如何在沒有的情況下注冊任務? 後臺任務可以通過

var builder = new BackgroundTaskBuilder(); 

進行註冊,然後

builder.Name = taskName; 
builder.TaskEntryPoint = taskEntryPoint; 
builder.SetTrigger(trigger); 
BackgroundTaskRegistration task = builder.Register(); 

如此地: Register a background task

但正如我所說 - 我的問題是如何在應用程序執行之前運行此代碼。

回答

6

您可以在清單中使用preInstalledConfigTask擴展名。此任務將在您的應用程序安裝後啓動。

有時您的應用程序在安裝 後需要立即更新。本合同將使您無需任何用戶交互立即啓動 更新任務,以確保您的應用程序 立即更新。

Here是所有可用擴展的完整列表。

preinstall task in editor

<Extensions> 
    <Extension Category="windows.preInstalledConfigTask" EntryPoint="PreInstallTask.Task" /> 
    </Extensions> 

你會發現在manifest schema

+0

謝謝。 +1。雖然我還沒有接受,直到我可以驗證它。目前,雖然Task(UserPresent,而不是preInstalled)似乎已經註冊,但即使在我註銷並重新啓動時也不會調用它。 (而且我認爲即使我只鎖定屏幕,也應該調用它。) – ispiro

0

擴展定義中我有同樣的問題,最近和缺少什麼:

preInstalledConfigtask可以使用清單編輯器設置在之前的回答中,預安裝配置僅觸發原始設備製造商(OEM)& MO。 See here

這就是說,它可能不可能做你想做的事情,因爲任務不會觸發,除非你沒有管理操作系統並在你的開發者中心擁有必要的權利。 See here.

相關問題