Sdílet prostřednictvím


Optimalizace aktivity na pozadí

Univerzální aplikace pro Windows by měly konzistentně dobře fungovat ve všech rodinách zařízení. Na zařízeních s bateriemi je spotřeba energie kritickým faktorem v celkovém prostředí uživatele s vaší aplikací. Celodenní výdrž baterie je žádoucí funkcí pro každého uživatele, ale vyžaduje efektivitu ze všech softwaru nainstalovaných na zařízení, včetně vašeho vlastního.

Chování úloh na pozadí je pravděpodobně nejdůležitějším faktorem celkové spotřeby energie aplikace. Úloha na pozadí je jakákoli aktivita programu zaregistrovaná v systému, aby se spustila bez otevření aplikace. Další informace najdete v tématu Vytvoření a registrace úlohy na pozadí mimo proces .

Oprávnění pro aktivity na pozadí

Na stolních a mobilních zařízeních s Windows 10 verze 1607 nebo novější můžou uživatelé zobrazit svoji baterii podle aplikace v části Nastavení Windows. Tady uvidí seznam aplikací a procento životnosti baterie, které každá aplikace spotřebovala (z množství životnosti baterie, která byla použita od posledního nabíjení). U aplikací pro UPW v tomto seznamu můžou uživatelé vybrat aplikaci, aby otevřeli ovládací prvky související s aktivitou na pozadí.

využití baterie podle aplikace

Oprávnění na pozadí na mobilním zařízení

Na mobilních zařízeních se uživatelům zobrazí seznam radio tlačítek, která určují nastavení oprávnění pro úkoly na pozadí pro danou aplikaci. Aktivitu na pozadí je možné nastavit na "Vždy povoleno", "Nikdy povoleno" nebo "Spravováno systémem Windows", což znamená, že aktivita na pozadí aplikace je regulovaná systémem podle řady faktorů.

Přepínače oprávnění k úkolům na pozadí

Povolení na pozadí pro stolní počítač

Na stolních zařízeních se nastavení Spravované systémem Windows zobrazí jako přepínač, který je ve výchozím nastavení zapnutý . Pokud uživatel přepne na vypnuto, zobrazí se mu zaškrtávací políčko, se kterým může ručně definovat oprávnění aktivity na pozadí. Když je toto políčko zaškrtnuté, bude mít aplikace povoleno spouštět úlohy na pozadí vždy. Pokud políčko není zaškrtnuté, aktivita na pozadí se zakáže.

zapnutý přepínač oprávnění úlohy na pozadí

Vypnutí oprávnění úlohy na pozadí

V aplikaci můžete použít hodnotu výčtu BackgroundAccessStatus vrácenou voláním metody BackgroundExecutionManager.RequestAccessAsync() k určení aktuálního nastavení oprávnění aktivity na pozadí.

Stačí říct, že pokud vaše aplikace neimplementuje zodpovědnou správu aktivit na pozadí, může uživatel odepřít oprávnění na pozadí vaší aplikaci úplně, což není žádoucí pro některou stranu. Pokud vaše aplikace byla odepřena oprávnění ke spuštění na pozadí, ale vyžaduje aktivitu na pozadí k dokončení akce pro uživatele, můžete uživatele upozornit a nasměrovat na nastavení Windows. Toho lze dosáhnout spuštěním nastavení systému Windows na stránce Aplikace na pozadí nebo podrobnosti o využití baterie.

Práce s funkcí spořič baterie

Spořič baterie je funkce na úrovni systému, kterou můžou uživatelé konfigurovat v Nastavení. Přeruší veškerou aktivitu na pozadí všech aplikací, když úroveň baterie klesne pod prahovou hodnotu definovanou uživatelem, s výjimkou aktivity na pozadí aplikací, které byly nastaveny na "Vždy povoleno".

Stav režimu Battery Saver zkontrolujte v aplikaci odkazem na vlastnost PowerManager.EnergySaverStatus . Jedná se o hodnotu výčtu: EnergySaverStatus.Disabled, EnergySaverStatus.Off nebo EnergySaverStatus.On. Pokud vaše aplikace vyžaduje aktivitu na pozadí a není nastavená na hodnotu Vždy povolená, měla by zpracovávat EnergySaverStatus.On tím, že uživateli oznámí, že dané úlohy na pozadí nebudou spuštěny, dokud se nespusí spořič baterie. I když je správa aktivit na pozadí primárním účelem funkce spořič baterie, může vaše aplikace provádět další úpravy, které budou šetřit energii, když je zapnutý spořič baterie. V případě, že je šetřič baterie zapnutý, může vaše aplikace snížit využití animací, zastavit dotazování polohy nebo zpoždění synchronizace a zálohování.

Další optimalizace úloh na pozadí

Následují další kroky, které můžete provést při registraci úloh na pozadí, aby byly šetrnější k baterii.

Použití spouštěče údržby

Místo objektu SystemTrigger lze použít objekt MaintenanceTrigger k určení, kdy se spustí úloha na pozadí. Úlohy, které používají triggery údržby, se spustí pouze v případě, že je zařízení připojené k napájení AC, a tím pádem mohou běžet déle. Pokyny najdete v tématu Použití triggeru údržby .

Použijte systémovou podmínku typu BackgroundWorkCostNotHigh

Systémové podmínky musí být splněny, aby úlohy na pozadí běžely (další informace najdete v tématu Nastavení podmínek pro spuštění úlohy na pozadí ). Náklady na práci na pozadí jsou měření, které označuje relativní energetický dopad spuštění úlohy na pozadí. Úloha spuštěná, když je zařízení připojeno k napájení střídavého proudu, by bylo označeno jako nízké (malý/žádný dopad na baterii). Úloha, která běží, když je zařízení na napájení z baterie a má vypnutou obrazovku, je označena jako vysoká, protože je pravděpodobné, že na zařízení běží málo programové aktivity, takže úloha na pozadí má vyšší relativní náklady. Úloha běžící, když zařízení pracuje na baterii s obrazovkou zapnutou, je označena jako střední, protože už pravděpodobně běží nějaká programová aktivita a úloha na pozadí by k energetickým nákladům přidala trochu navíc. Stav systému BackgroundWorkCostNotHigh jednoduše zpožďuje schopnost vašeho úkolu běžet, dokud není zapnutá obrazovka nebo že je zařízení připojené k napájení střídavého proudu.

Test účinnosti baterie

Nezapomeňte svou aplikaci otestovat na skutečných zařízeních pro všechny scénáře s vysokou spotřebou energie. Je vhodné otestovat aplikaci na mnoha různých zařízeních, s zapnutým a vypnutým spořičem baterie a v prostředích s různou silou sítě.