Android usypia aplikacje w tle - Xiaomi, Huawei, Samsung i znikające powiadomienia

Zgłoszenie brzmi zawsze tak samo: aplikacja działa, kiedy jest otwarta, ale po godzinie leżenia telefonu przestaje cokolwiek pokazywać. Odblokowujesz ekran, wchodzisz w aplikację i powiadomienia nagle się pojawiają, wszystkie naraz.

To nie jest błąd aplikacji. To producent telefonu.

Skąd się to bierze

Czysty Android ma własne mechanizmy oszczędzania energii — Doze i App Standby — i one są przewidywalne. Producenci nakładek dołożyli do tego własne, znacznie bardziej agresywne. Xiaomi w MIUI i HyperOS, Huawei w EMUI, Samsung w One UI, podobnie Oppo, Vivo i OnePlus.

Efekt: system zabija procesy w tle, blokuje budzenie aplikacji przez zdarzenia i ogranicza wyświetlanie okien nad innymi aplikacjami. Aplikacja nie dostaje informacji, że coś się wydarzyło, albo dostaje ją z opóźnieniem liczonym w minutach.

Najgorsze jest to, że nic o tym nie wiadomo. Nie ma komunikatu, nie ma wpisu w logu widocznego dla użytkownika. Aplikacja po prostu milczy.

Co ustawić — kolejność ma znaczenie

Nazwy pozycji różnią się między wersjami nakładek, więc szukaj sensu, nie dokładnego brzmienia.

Wszystkie telefony

  1. Ustawienia → Aplikacje → wybrana aplikacja → Bateria i ustaw brak ograniczeń albo zezwolenie na pracę w tle.
  2. Powiadomienia tej aplikacji — włączone, wszystkie kanały, a kanał odpowiadający zdarzeniom pilnym ustawiony jako priorytetowy.
  3. Jeżeli aplikacja rysuje okno nad innymi — Wyświetlanie nad innymi aplikacjami musi być włączone.
  4. Na Androidzie 14 i nowszym osobno dochodzi zgoda na powiadomienia pełnoekranowe. Bez niej okno nie przebije się nad ekran blokady.

Xiaomi, Redmi, POCO

Najbardziej upierdliwe. Poza powyższym:

  • w menu ostatnich aplikacji przeciągnij kartę aplikacji w dół i zablokuj ją kłódką — to chroni przed zamknięciem przy czyszczeniu pamięci,
  • Ustawienia → Aplikacje → wybrana → Autostart włączony,
  • Oszczędzanie baterii dla tej aplikacji: bez ograniczeń,
  • na nowszych HyperOS sprawdź jeszcze pozwolenie na wyświetlanie okien przy zablokowanym ekranie — bywa osobną pozycją.

Huawei i Honor

  • Ustawienia → Bateria → Uruchamianie aplikacji — przełącz aplikację z trybu automatycznego na ręczny i zaznacz wszystkie trzy zgody: automatyczne uruchamianie, uruchamianie pośrednie i działanie w tle,
  • wyłącz dla niej optymalizację zużycia energii.

Samsung

  • Ustawienia → Bateria → Limity użycia w tle — upewnij się, że aplikacji nie ma na liście uśpionych ani głęboko uśpionych,
  • Ustawienia → Aplikacje → wybrana → Bateria → Bez ograniczeń,
  • wyłącz Automatyczne wyłączanie nieużywanych aplikacji, jeżeli telefon bywa nieużywany
    przez kilka dni.

Kiedy to nie wystarcza

Zostaje jedno wyjście, z którego korzysta większość aplikacji krytycznych czasowo: usługa pierwszoplanowa. Aplikacja trzyma w tle lekką usługę z widocznym, minimalnym powiadomieniem. System takiej usługi nie usypia, bo formalnie coś się dzieje na wierzchu.

Kosztem jest stała ikona w pasku. W zamian dostajesz zachowanie przewidywalne na każdej nakładce. Wiele aplikacji nazywa to trybem niezawodnym albo pracą ciągłą — jeśli jest taka opcja, to właśnie po to.

Jak to sprawdzić, zanim uznasz, że działa

Test w ciągu dwóch minut od konfiguracji nic nie mówi, bo system jeszcze niczego nie uśpił. Sensowna procedura:

  1. Odłóż telefon z zablokowanym ekranem i nie dotykaj go przez godzinę.
  2. Wywołaj zdarzenie, na które aplikacja ma zareagować.
  3. Sprawdź, czy powiadomienie pojawiło się od razu, a nie po odblokowaniu ekranu.

Powiadomienia, które wysypują się dopiero po odblokowaniu, to klasyczny objaw uśpionej aplikacji. Powtórz test po nocy — niektóre nakładki dokręcają śrubę dopiero po kilku godzinach bezczynności.

Przy wdrożeniach firmowych

Jeżeli rozdajesz telefony pracownikom, potraktuj tę konfigurację jak część procedury wydania sprzętu, a nie jak reakcję na zgłoszenie. Przy pięciu telefonach i trzech różnych markach nikt tego potem nie odtworzy z pamięci.

Praktycznie: kupuj do zespołu jeden model, spisz ścieżkę klikania dla tego modelu i sprawdzaj ją przy każdym nowym telefonie. To brzydkie rozwiązanie, ale jedyne, które się skaluje.

Ten problem dopadł mnie przy CallerPeeku — aplikacji, która pokazuje dane klienta ze sklepu w chwili, gdy telefon dzwoni. Aplikacja, która ma zdążyć przed drugim dzwonkiem, nie ma marginesu na uśpienie, więc dostała tryb niezawodny i osobny ekran pomocy z instrukcjami dla każdej nakładki. CallerPeeka napisałem sam i sprzedaję go przez consaltex.pl.