Language: HTML | XAML

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

了解如何建立回應 SystemTrigger 事件的背景工作。

您必須知道的事

技術

先決條件

  • 這個主題假設您有為應用程式撰寫的背景工作類別,且這個工作需要執行以回應系統所觸發的事件,例如網際網路變成可用或是使用者登入。您的應用程式不需要在鎖定畫面上,就可以執行使用 SystemTriggerMaintenanceTrigger 類別登錄的背景工作。這個主題的重點在 SystemTrigger 類別。如需撰寫背景工作類別的詳細資訊,請參閱快速入門:建立並登錄背景工作

指示

步驟 1: 建立 SystemTrigger 物件

  • 在應用程式程式碼中,建立新的 SystemTrigger 物件。 第一個參數 triggerType 指定將啟用這個背景工作的系統事件觸發程序類型。如需事件類型清單,請參閱 SystemTriggerType

    第二個參數 OneShot 指定執行背景工作的時間為下一次系統事件發生且觸發背景工作時,或是在工作解除登錄前每次系統事件發生時。

    下列程式碼指定每當網際網路變成可用時就執行背景工作:

    
    SystemTrigger internetTrigger = new SystemTrigger(SystemTriggerType.InternetAvailable, false);
    
    

步驟 2:

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

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

    下列程式碼會將條件新增到背景工作:

    
    SystemCondition exampleCondition = new SystemCondition(SystemConditionType.UserPresent);
    
    

步驟 3: 登錄背景工作

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

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

    
    string entryPoint = "Tasks.ExampleBackgroundTaskClass";
    string taskName   = "Internet-based background task";
    
    BackgroundTaskRegistration task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);
    
    

    注意  

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

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

    注意  

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

備註

若要查看背景工作登錄的執行方式,請下載背景工作範例

即使沒有將背景工作放置在鎖定畫面上,也可以執行背景工作以回應 SystemTriggerMaintenanceTrigger 事件,但是您還是必須在應用程式資訊清單中宣告背景工作。在 Phone 上,您必須也要呼叫 RequestAccessAsync,才能登錄任何背景工作類型。

具有鎖定畫面功能的應用程式可以登錄會回應 TimeTriggerPushNotificationTriggerNetworkOperatorNotificationTrigger 事件的背景工作,讓這些應用程式提供與使用者進行即時通訊的功能,即使應用程式不在前景也一樣。如需詳細資訊,請參閱使用背景工作支援應用程式

相關主題

快速入門:建立並登錄背景工作
如何登錄背景工作
如何設定執行背景工作的條件
如何使用維護觸發程序
如何在應用程式資訊清單中宣告背景工作
How to debug a background task
背景工作的指導方針和檢查清單

 

 

顯示:
© 2015 Microsoft