共用方式為


如何使用維護觸發程序 (HTML)

[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]

了解如何在裝置使用 AC 電源時,使用 MaintenanceTrigger 類別於背景中執行輕量型程式碼。

您必須知道的事

技術

先決條件

  • 這個範例假設您已經有能夠在裝置使用 AC 電源時,於背景中執行以強化應用程式的輕量型程式碼。本主題著重在 MaintenanceTrigger 類別,這個類別與 SystemTrigger 類似,應用程式不必在鎖定畫面上,即可登錄 MaintenanceTrigger 背景工作。如需撰寫背景工作類別的詳細資訊,請參閱快速入門:建立並登錄背景工作

指示

步驟 1: 建立維護觸發程序物件

建立新的 MaintenanceTrigger 物件。第二個參數 OneShot 指定維護工作是要執行一次,或是繼續定期執行。如果 OneShot 設定成 True,第一個參數 (FreshnessTime) 會指定排定背景工作之前要等待的時間 (單位:分鐘)。如果 OneShot 設定成 False,FreshnessTime 會指定背景工作的執行頻率。

注意  如果 FreshnessTime 設定為少於 15 分鐘,則嘗試登錄背景工作時會擲回例外狀況。

 

這個範例程式碼會建立每小時執行一次的觸發程序:

var waitIntervalMinutes = 60;

var taskTrigger = new Windows.ApplicationModel.Background.MaintenanceTrigger(waitIntervalMinutes, false);

步驟 2: (選用) 新增條件

如有需要,可新增背景工作條件以控制何時執行工作。在符合條件之前,條件會防止背景工作執行,如需詳細資訊,請參閱如何設定執行背景工作的條件

這個範例中,條件是設成 UserPresent,讓維護只在使用者作用中 (或是使用者變成作用中時) 時才會執行。如需可能的背景工作條件的清單,請參閱 SystemConditionType

下列程式碼會將條件新增到維護工作建立器:

var exampleCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.UserAway);

步驟 3: 登錄背景工作

呼叫背景工作登錄函式以登錄背景工作。如需登錄背景工作的詳細資訊,請參閱如何登錄背景工作

下列程式碼會登錄背景工作:

var entryPoint = “js\\ExampleBackgroundTask.js”;
var taskName = “Maintenance background task example”;

var task = RegisterBackgroundTask(entryPoint, taskName, taskTrigger, exampleCondition);

注意  

在「Windows Phone 市集」應用程式中,在嘗試登錄任何背景工作之前,您都必須先呼叫 RequestAccessAsync。在 Windows 上,只有當一組背景工作需要應用程式在鎖定畫面上才能執行時,才需要進行這個呼叫,但是在 Windows Phone 上,登錄任何背景工作之前,都必須先呼叫一次這個方法。

為了確保您的 Windows Phone 應用程式會在您發行更新之後繼續正常執行,您必須呼叫 RemoveAccess,然後在應用程式於更新後啟動時呼叫 RequestAccessAsync。如需詳細資訊,請參閱背景工作的指導方針 (HTML)

注意  

從 Windows 8.1 開始,背景工作登錄參數都是在登錄時驗證。如果有任一個登錄參數無效,就會傳回錯誤。您的應用程式必須能夠處理背景工作登錄失敗的狀況,例如使用條件式陳述式來檢查登錄是否有錯誤,接著使用不同的參數值來重試已失敗的登錄。

 

備註

除非裝置使用 AC 電源,否則不會觸發維護觸發程序事件。

注意  如果未插入裝置,會取消所有目前正在執行且由 MaintenanceTrigger 啟動的背景工作 (cancelReason = Abort)。如果在收到背景工作已取消事件的 5 秒之內未取消背景工作,背景工作將會終止。如需詳細資訊,請參閱如何處理已取消的背景工作

 

相關主題

快速入門:建立並登錄背景工作

如何登錄背景工作

如何使用背景工作回應系統事件

如何設定執行背景工作的條件

如何在應用程式資訊清單中宣告背景工作

如何偵錯背景工作

背景工作的指導方針和檢查清單