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
- Ustawienia → Aplikacje → wybrana aplikacja → Bateria i ustaw brak ograniczeń albo zezwolenie na pracę w tle.
- Powiadomienia tej aplikacji — włączone, wszystkie kanały, a kanał odpowiadający zdarzeniom pilnym ustawiony jako priorytetowy.
- Jeżeli aplikacja rysuje okno nad innymi — Wyświetlanie nad innymi aplikacjami musi być włączone.
- 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żywanyprzez 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:
- Odłóż telefon z zablokowanym ekranem i nie dotykaj go przez godzinę.
- Wywołaj zdarzenie, na które aplikacja ma zareagować.
- 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.