Czy aplikacje na iOS działają w tle?


12

Powiedzmy, że jeśli zainstaluję kilkanaście gier i narzędzi na iPhonie, a następnie zainstaluję aplikacje czatu, takie jak WhatsApp, WeChat, Line, a następnie

  1. Czy po ponownym uruchomieniu iPhone'a wszystkie te aplikacje mogą się również uruchomić i mogą zająć cenny czas procesora i zasoby systemowe?

  2. 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ęść?

  3. 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żywają mojego procesora 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?

Jednym wielkim problemem jest to, że jeśli zainstaluję wszystkie odmiany Angry Birds, kilka kasynowych gier ruletkowych i wszystkie wersje Cut the Rope i nie zawracam sobie głowy ich usunięciem (telefon ma 128 GB pamięci). Czy zatem wszystkie te aplikacje będą mogły działać w czasie restartu iPhone'a, czy po prostu losowo i zajmą czas procesora i zasoby systemowe (np. RAM)?


1
Opublikowałem bardzo długi przewodnik na temat wszystkiego, co tu warto wiedzieć, mam nadzieję, że to naprawdę ci pomoże!
— owlswipe

Czy moja odpowiedź pomogła? Proszę, zaakceptuj to lub powiedz mi, co jest z nią nie tak, żebym mógł to poprawić! :)
— owlswipe

Odpowiedzi:


26

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 Settingsswojego iPhone'a, znajdź Batterysekcję 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:

wprowadź opis zdjęcia tutaj

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 notificationsmoż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:


2
to całkiem dobre ... czy możesz podać jakieś referencje / źródła na ten temat?
— 太極 者 無極 而 生

2
@ 太極 者 無極 而 生 Wszystkie informacje pochodzą z mojej osobistej wiedzy jako programisty iOS, ale dodałem także kilka źródeł na dole mojej odpowiedzi.
— owlswipe

1
Doskonała odpowiedź. Ciekawostką było to, że Apple wyłączył zdalne powiadomienia o zamkniętych aplikacjach w systemie iOS 7. Ale ponieważ ludzie, którzy kompulsywnie odrzucali wszystkie swoje aplikacje, skarżyli się na nieotrzymywanie powiadomień, co zostało ponownie wprowadzone w iOS 7.1 lub 7.2.

2
@Phong Podoba mi się, nie wiedziałem o tym! Dzięki: D.
— owlswipe

3
Nie masz racji, że wymuszanie rezygnacji nie ma związku z tym, czy aplikacje mogą korzystać z wykonywania w tle. Apple na BE : „[iOS] nie uruchamia ponownie aplikacji po ... wymuszeniu wyjścia przez użytkownika. Jednym wyjątkiem są aplikacje lokalizacyjne ... w iOS 8 i nowszych ... [W przeciwnym razie] użytkownik musi [it] uruchomić jawnie lub ponownie uruchomić ... zanim aplikacja [zostanie] automatycznie uruchomiona w tle przez [iOS] ”.
— tubedogg
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.