共用方式為


優化背景活動

通用 Windows 應用程式應該在所有裝置系列上一致地執行。 在電池供電的裝置上,耗電量是使用者應用程式整體體驗的重要因素。 一整天的電池使用時間對每個使用者都是理想的功能,但它需要裝置上安裝的所有軟體的效率,包括您自己的軟體。

背景工作行為可以說是應用程式總能源成本中最重要的因素。 背景工作是任何已向系統註冊的程序活動,以在未開啟應用程式的情況下執行。 如需詳細資訊,請參閱 建立及註冊跨進程背景工作

背景活動權限

在執行 Windows 10 版本 1607 或更新版本的桌面和行動裝置上,用戶可以在 \[設定\] 應用程式的 \[電池使用\] 區段中檢視其\[電池使用量\]。 在這裡,他們會看到一份應用程式清單,以及每個應用程式已耗用的電池使用時間百分比(從上次充電以來已使用的電池使用時間量中)。 針對此清單中的 UWP 應用程式,使用者可以選取應用程式來開啟與背景活動相關的控制項。

依應用程式 的電池使用量

行動裝置的背景權限

在行動裝置上,使用者會看到單選按鈕清單,這些按鈕會指定該應用程式的背景工作許可權設定。 背景活動可以設定為「一律允許」、「永不允許」或「由 Windows 管理」,這表示應用程式的背景活動會根據許多因素受到系統管制。

背景任務權限單選按鈕

桌面上的背景許可權

在桌面裝置上,[受 Windows 管理] 設定會顯示為切換開關,預設會設定為 [開啟 ]。 如果使用者切換至 Off,則會顯示一個複選框,讓他們可以手動定義背景活動許可權。 勾選核取方塊後,應用程式將被允許隨時執行背景工作。 當框未被選取時,將停用背景活動功能。

在的背景工作許可權

背景工作許可權關閉

在您的應用程式中,您可以使用 BackgroundExecutionManager.RequestAccessAsync() 方法呼叫後傳回的 BackgroundAccessStatus 列舉值來判斷其目前的背景活動許可權設定。

總而言之,如果您的應用程式未實作負責任的背景活動管理,使用者可能會完全拒絕授予應用程式背景權限,這對雙方都不理想。 如果您的應用程式在背景中執行的許可權遭到拒絕,但需要背景活動才能完成用戶的動作,您可以通知使用者,並將它們指向 [設定] 應用程式。 啟動 [設定應用程式] 到 [背景應用程式] 或 [電池使用量詳細數據] 頁面,即可完成此作業。

使用省電模式功能

省電模式是使用者可以在 [設定] 中設定的系統層級功能。 當電池電量低於使用者定義閾值時,它會切斷所有應用程式的所有背景活動,除了已設定為「一律允許」的應用程式背景活動 以外。

藉由參考 powerManager.EnergySaverStatus 屬性,從您的應用程式內檢查省電模式的狀態。 這是列舉值:EnergySaverStatus.DisabledEnergySaverStatus.OffEnergySaverStatus.On。 如果您的 app 需要背景活動,且未設定為 “Always allowed”,則它應該處理 EnergySaverStatus.On,通知使用者指定的背景工作在省電模式關閉之前不會執行。 雖然背景活動管理是省電模式功能的主要用途,但您的應用程式可以在省電模式開啟時進一步節省能源。 在省電模式開啟的情況下,您的應用程式可以減少其動畫的使用、停止位置輪詢,或延遲同步處理和備份。

進一步優化背景工作

以下是註冊背景工作時可採取的其他步驟,讓背景工作更具電池感知能力。

使用維護觸發器

您可以使用 MaintenanceTrigger 物件,而不是 SystemTrigger 物件,以判斷背景工作何時啟動。 使用維護觸發程式的工作只會在裝置連線到 AC 電源時執行,而且允許它們執行更長的時間。 如需指示,請參閱 使用維護觸發程式

使用 BackgroundWorkCostNotHigh 系統條件類型

必須符合系統條件,才能執行背景工作(如需詳細資訊,請參閱 設定執行背景工作的條件)。 背景工作成本是衡量執行背景工作時的相對 能源影響的 指標。 當裝置插入 AC 電源時執行的工作會標示為 (對電池的影響很少/沒有影響)。 當裝置在使用電池電源且螢幕關閉時執行的工作被標示為 ,因為此時在裝置上運行的程式活動可能很少,因此背景工作的相對成本會較高。 當裝置在電池供電且螢幕 時,執行的工作標示為 中等,因為可能已有一些程式活動正在執行,背景工作的加入會稍微增加能源成本。 BackgroundWorkCostNotHigh 系統條件會延遲任務執行,直到畫面開啟或裝置連線到 AC 電源為止。

測試電池效率

請務必在任何高耗電量案例的實際裝置上測試您的應用程式。 最好在許多不同的裝置上測試您的應用程式,並在不同網路強度的環境中開啟和關閉省電模式。