Apple ma bardzo surowe wytyczne dotyczące tego, jak i kiedy aplikacje mogą działać w tle.
Poniżej przedstawiono jedyne scenariusze, w których aplikacja iOS innej firmy może korzystać z procesora w tle.
Pobieranie w tle
Każda aplikacja może korzystać z funkcji „Pobieranie w tle” (czyli odświeżania aplikacji w tle), aby pobierać treści w tle przez kilka sekund, mniej więcej raz dziennie (w ramach czasowych regulowanych przez system iOS, poza kontrolą programisty). Pobieranie w tle zajmuje bardzo mało baterii i procesora i jest używane głównie przez aplikacje wiadomości / pogody / mediów społecznościowych / poczty do aktualizacji kanału, aby po otwarciu aplikacji nie był całkowicie nieaktualny.
Audio, Voice over IP, komunikacja Bluetooth
Jeśli aplikacja odtwarza dźwięk w tle (przez AirPlay lub przez głośniki telefonu), iOS pozwala mu działać w tle, dopóki nie przestanie odtwarzać muzyki; jeśli aplikacja pozwala na wykonywanie połączeń telefonicznych opartych na danych (takich jak Whatsapp lub Skype) w tle, może pozostać aktywna, używając procesora przez czas trwania połączenia; a jeśli aplikacja komunikuje się z akcesoriami Bluetooth (np. aplikacja Pebble komunikująca się z Pebble Smartwatch), może pozostawać w stanie czuwania na stałe w tle.
Pobieranie kiosku, zdalne powiadomienia
Aplikacje Kiosku (o ile są zatwierdzone przez Apple jako ważna organizacja wiadomości i wyświetlane w części App Store w Kiosku) mogą pobierać nowe treści w tle; każda aplikacja (np. The New York Times), która musi wyświetlać powiadomienia generowane poza aplikacją (na przykład powiadomienia o najświeższych wiadomościach), może pozostać w tle, aby otrzymywać takie „zdalne” powiadomienia.
Aktualizacje lokalizacji
Jeśli zezwolisz aplikacji na „zawsze” korzystanie z Twojej lokalizacji (tj. W tle), może ona być aktywna w dowolnym momencie w tle. Aplikacje takie jak Facebook, Znajdź znajomych i inni używają tego do aktualizowania informacji związanych z lokalizacją, chociaż inne aplikacje mogą go używać, aby potajemnie używać go do wykonywania zadań w tle (ale tylko wtedy, gdy zezwalasz im na dostęp do Twojej lokalizacji).
Bardzo błędne jest to, że „przesuwając się” na app zabić zatrzymuje go od działających w tle: to jest całkowicie nieprawdziwe. Aplikacje, które mają jeden z powyższych siedmiu powodów, aby działać w tle, mogą działać w tle, niezależnie od tego, czy „przesuwasz” je w górę, a aplikacje, które nie mają jednego z tych siedmiu powodów, nie mogą działać, gdy nie są na ekranie, nawet jeśli ich nie zabijesz.
Innym nieporozumieniem (które wydaje się mieć!) Jest to, że wyłączenie „Odświeżania aplikacji w tle” spowoduje, że aplikacja nie będzie działać w tle; w rzeczywistości wyłącza to aplikację z pobierania w tle, ale może działać w tle, jeśli ma jeden z pozostałych sześciu powodów, niezależnie od przełączania Odświeżania aplikacji w tle.
Więc czy aplikacje zainstalowane w tle przy użyciu procesora, pamięci, baterii lub danych? Możesz łatwo się dowiedzieć! Przejdź do Settings
swojego iPhone'a, znajdź Battery
sekcję i rzuć okiem. Jeśli nazwa aplikacji pokazuje „Aktywność w tle”, oznacza to, że używa procesora w tle; w przeciwnym razie nic nie robi w tle.
Oto przykładowy zrzut ekranu:
Na tym iPhonie podcasty działają w tle, ale żadna inna aplikacja tego nie robi. Przejście do ustawień baterii to prosty sposób na sprawdzenie, czy w tle działa Angry Birds.
Tak więc, aby bezpośrednio odpowiedzieć na twoje pytania:
Czy po ponownym uruchomieniu iPhone'a wszystkie te aplikacje mogą się również uruchomić i mogą zająć cenny czas procesora i zasoby systemowe?
Tylko jeśli są one specjalnie skonfigurowane do działania w tle, możesz sprawdzić, czy robią to w ustawieniach baterii telefonu iPhone.
Co się stanie, jeśli uruchomię aplikację, a następnie dwukrotnie dotknij przycisku Strona główna, a następnie wysuń aplikację (aby ją zamknąć). Czy teraz lub później może działać w tle lub jego część?
Tak. Na przykład, jeśli Facebook korzysta z usług lokalizacyjnych (tak jak ma to miejsce), wówczas przesunięcie w górę, aby zabić aplikację Facebook, nie powstrzyma jej przed użyciem Twojej lokalizacji w tle, a podczas gdy używa Twojej lokalizacji, może wykonać prawie każde inne zadanie w tło też.
Ponieważ wszystkie wiadomości WhatsApp, WeChat, Line i Facebook powiadamiają mnie o nowych wiadomościach, wygląda na to, że będą one działać, gdy ponownie uruchomię iPhone'a. Czy używanie mojego procesora jest w tle? Wygląda też na to, że nawet jeśli wyłączę Odświeżanie aplikacji w Ustawieniach, aplikacje mogą nadal działać w tle. Czy to prawda?
Whatsapp, WeChat, Line, Hangouts, FB Messenger i inne aplikacje do czatowania korzystają z remote notifications
możliwości sprawdzania nowych wiadomości w tle od czasu do czasu. Jest to oczekiwane zachowanie (możesz sprawdzić, ile robią, sprawdzając zużycie baterii w aplikacji, ponownie w ustawieniach Baterii) i nie powinno nadmiernie rozładowywać baterii. I rzeczywiście, wyłączenie odświeżania aplikacji dla tych aplikacji nie przyniesie żadnego efektu, ponieważ aplikacje używają zdalnych powiadomień, a nie pobierania w tle, aby działać w tle.
TL; DR: Aplikacje mogą korzystać z zasobów telefonu w tle, możesz zobaczyć, ile robią w Settings
-> Battery
.
Źródła informacji: